由于所述文件的大小和复杂性,我已经开始将我的应用程序分解为单独的文件,完全基于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() {
}]);
所以我的问题是,“如何在主控制器内部获得子控制器的实例?”
答案 0 :(得分:6)
您可以使用用于注册控制器的名称:
controller: 'firstInstanceCtrl',
$modal.open
在内部使用$controller
。