나는 자신의 컨트롤러를 사용하지만 한 번에 하나씩 2보기를 가질 수있는 요소를 갖고 싶습니다. 미래에 가능한 동작에 따라 내용을 변경해야하는 더 많은 ng-includes를 포함해야하므로 ng-view를 사용하고 routeProvider를 사용할 수 없습니다.하나의 Angularjs 다른 컨트롤러를 포함
나는 http://jsfiddle.net/EvHyT/29/을 만들었습니다.
그래서 ng-include를 사용한 다음 주 컨트롤러에서 src를 설정했습니다. 그 시점에서 컨트롤러 1 또는 컨트롤러 2를 사용하려고합니다.
function MainCtrl($rootScope, $scope, navService){
$scope.template = {};
$scope.loadCtrl1=function(param){
navService.loadCtrl1(param);
}
$scope.loadCtrl2=function(param){
navService.loadCtrl2(param);
}
$rootScope.$on('loadCtrl1', function(e, args){
$scope.template = {'url': 'temp1'};
});
$rootScope.$on('loadCtrl2', function(e, args){
$scope.template = {'url': 'temp2'};
});
}
하위 컨트롤러에서로드 컨트롤러 기능을 이동하려고하므로 통신을 위해 서비스를 사용합니다.
var myApp = angular.module('myApp',[]);
myApp.factory('navService', function($rootScope) {
return {
loadCtrl1:function(param){
$rootScope.$broadcast('loadCtrl1', {'id':param});
},
loadCtrl2:function(param){
$rootScope.$broadcast('loadCtrl2', {'id':param});
}
};
});
는 내 이벤트 리스너가 발생하지 않도록 다른 템플릿이 삽입 될 때 컨트롤러가 아직 생성되지 않기 때문에이 솔루션이 나쁘다는 것을 알고있다. 또한 두 컨트롤러 사이를 전환하면 여러 번 이벤트가 발생하기 때문에 컨트롤러의 이전 인스턴스를 파괴 할 수 있습니다.
function Child1Ctrl($scope, $rootScope){
$rootScope.$on('loadCtrl1', function(e, args){
alert(args.id);
});
}
function Child2Ctrl($scope, $rootScope){
$rootScope.$on('loadCtrl2', function(e, args){
alert(args.id);
});
}
나는 u를 얻었지만 실제로는
과 같은 것을 의미합니까? – bresleveloper