나는 각진 프로젝트가 수행 한 방식에 전적으로 근거하여, 파일의 크기와 복잡성으로 인해 응용 프로그램을 개별 파일로 분리하기 시작했습니다.AngularJS Controller가 구축 된 후 인스턴스를 가져 오는 방법은 무엇입니까?
이 리팩터링을하는 동안 원래 컨트롤러가 구성된 방식으로 문제가 발생했습니다. 그 중 일부는 모달 대화 상자에 삽입 될 인스턴스를 인스턴스로 만듭니다.
var firstInstanceCtrl = ['$scope', function($scope) { code... } ];
var secondInstanceCtrl = ['$scope', function($scope) { code... } ];
내 '주'컨트롤러에이 방법
$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() {
}]);
제 질문은 "내 주 컨트롤러의 하위 컨트롤러 인스턴스를 어떻게 구합니까?"입니다.
controller: 'firstInstanceCtrl',
$modal.open
내부적 $controller
를 사용
'$ modal.open'에서'controller : 'firstInstanceCtrl'' 문자열 버전을 사용하십시오. –
http://jsfiddle.net/provegard/DUrgx/8/ 예를 들어 – SoluableNonagon
을 참조하십시오. 또한 $ 컨트롤러 서비스가 도움이 될 수 있습니다. http://docs.angularjs.org/api/ng.$controller – SoluableNonagon