我正在使用像这样的角度引导模态
var myModal = $modal.open({
controller: 'MyUpdateController as muc',
templateUrl: 'views/create_form.html',
现在我的父控制器是ParentController as PC
。
我想知道如何在PC
内或muc
模板
create_form
答案 0 :(得分:1)
您始终可以从相应的作用域访问控制器别名,或者通过继承访问其后代(Alias作为属性名附加在作用域上,其值包含控制器实例的引用)。 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()
在控制器中注入$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
并获取并将其设置在范围内。