如何将控制器中的父控制器作为语法以angular形式获取

时间:2015-02-03 03:31:06

标签: javascript angularjs twitter-bootstrap-3 angularjs-scope angular-ui-bootstrap

我正在使用像这样的角度引导模态

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

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

我想知道如何在PC内或muc模板

内访问create_form

1 个答案:

答案 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() 

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

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

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

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