如何在 angular 中获取控制器中的父控制器作为语法

How to get the parent controller in controller as Syntax in angular

我正在使用 angular bootstrap 这样的模式

   var myModal = $modal.open({
        controller: 'MyUpdateController as muc',
        templateUrl: 'views/create_form.html',

现在我的父控制器是 ParentController as PC

我想知道如何在 muccreate_form 模板

中访问 PC

您始终可以从各自的作用域或其后代通过继承访问控制器别名(别名作为 属性 名称附加在作用域上,其值包含控制器实例的引用)。 angular ui modal 接受一个范围 属性 ,你可以使用它来将你的模态设置到一个特定的范围(否则默认为 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() 

在您的控制器 (MyUpdateController) 中注入 $scope 并以 $scope.PC 访问父作用域,您也可以在模板中访问此别名。

另一种方法,您可以使用模态的 resolve 属性 并将当前父范围传递给它。

$modal.open({
    controller: 'MyUpdateController as muc',
    templateUrl: 'views/create_form.html',
    resolve: {
       parentCtrl: function(){
         return ctrl; //return controller here
       }
    }

并将 parentCtrl 作为依赖项注入 MyUpdateController 并获取它并将其设置在范围上。