如何构建AngularJS控制器的实例?

时间:2014-01-13 19:12:54

标签: angularjs

由于所述文件的大小和复杂性,我已经开始将我的应用程序分解为单独的文件,完全基于angular-seed项目的方式。

在这个重新分解期间,我遇到了原始控制器构建方式的问题。其中一些,将注入模态对话框的那些被创建为实例。

var firstInstanceCtrl = ['$scope', function($scope) { code... } ];

var secondInstanceCtrl = ['$scope', function($scope) { code... } ]; 

以这种方式在我的'main'控制器中使用

$scope.buttonClick = function (row) {

    var viewModel = {};

    var modalInstance = $modal.open({
        backdrop: 'static',
        windowClass: 'modal-wide',
        templateUrl: 'modalFirst.html',
        controller: firstInstanceCtrl,
        resolve: {
            viewModel: function () {
                return viewModel;
            }
        }
    });

    modalInstance.result.then(function () {}, function () { });
};

但是,现在注册控制器的方式,我看不出如何获取实例的方法,例如。

angular.module('myApp.controllers', []).
controller('firstInstanceCtrl', [function() {

}])
.controller('secondInstanceCtrl', [function() {

}]); 

所以我的问题是,“如何在主控制器内部获得子控制器的实例?”

1 个答案:

答案 0 :(得分:6)

您可以使用用于注册控制器的名称:

controller: 'firstInstanceCtrl',

$modal.open在内部使用$controller