Вы всегда можете получить доступ к псевдониму контроллера из соответствующего объема или его потомков осуществляются вниз по наследству (Алиас прилагается на сфере как имя свойства со значением, содержащим ссылку на экземпляр контроллера). angular ui modal использует свойство scope, которое вы можете использовать, чтобы установить ваш модальный объект в определенную область (иначе он по умолчанию не применяется rootScope). Таким образом, установить свойство области видимости в вашем модальной
$modal.open({
controller: 'MyUpdateController as muc',
templateUrl: 'views/create_form.html',
//Create a child scope of current scope or even pass the current $scope itself but be aware
scope:$scope.$new()
Inject $scope
в контроллере (MyUpdateController
) и доступ к родительской области, как $scope.PC
и вы можете получить доступ к этому псевдониму в вас шаблоне, а также.
Другой способ, которым вы, вероятно, можете использовать свойство модального объекта resolve
и передать ему текущую родительскую область.
$modal.open({
controller: 'MyUpdateController as muc',
templateUrl: 'views/create_form.html',
resolve: {
parentCtrl: function(){
return ctrl; //return controller here
}
}
и впрыснуть parentCtrl
как зависимость в вашем MyUpdateController
и получить его и установить его на прицел.
спасибо за это, но я не получил 'return ctrl', что будет' ctrl' здесь – user3214546
@ user3214546 Это может быть ваш контроллер (я предполагаю, что могу получить доступ к ПК или ПК). Я просто использовал переменную thats it, потому что вы не можете передать 'this' там, вам нужно будет кэшировать ее снаружи. Так что больше, как в вашем текущем контроллере, вы делаете 'var vm = this;' inorder, чтобы избежать прав доступа к этому «контексту» (если не использовать машинопись) ?, ctrl - vm в этом случае. – PSL
, так что u означает, если у меня есть 'vm = this', тогда я могу' return vm'. это тот правый – user3214546