각도가있는 하위 컨트롤러를 사용하는 경우 상위 범위에서 상속됩니다. 그래서 만약 여러분이 하나의 최상위 컨트롤러에 하위의 컨트롤러가 가지고 있지 않은 함수를 가지고 있다면 최상위 함수 (또는 범위 객체)가 참조 될 것입니다. 자식 컨트롤러 중 하나가 함수의 로컬 버전 (또는 범위의 속성)을 정의하면 부모 컨트롤러에서 더 이상 상속받지 않습니다.
바이올린 : http://jsfiddle.net/Y9yEQ/
html로
<div ng-app="myApp" ng-controller="TopLevelCtrl">
<button ng-click="testing()">Yo top level!</button>
<button ng-click="testing2()">Yo top level 2!</button>
<div ng-controller="ChildCtrl">
<button ng-click="testing()">Yo child!</button>
<button ng-click="testing2()">Yo child2!</button>
</div>
</div>
JS
angular.module("myApp",[]).controller("TopLevelCtrl", function($scope){
$scope.testing = function() {
alert("just testing");
}
$scope.testing2 = function() {
alert("just testing parent");
}
}).controller("ChildCtrl", function($scope){
$scope.testing2 = function() {
alert("just testing child");
}
})
당신이 컨트롤러의 인스턴스를 생성하거나 파괴 될 수 있기 때문에 (다중 컨트롤러 사이에 데이터를 공유해야하는 경우 그들이 추가/제거 될 때보기 지원) 서비스를 사용하고자합니다. 컨트롤러에 대한 엄격한 구조를 가지고 있다면 범위를 통해 이벤트를 버블 링하거나 $ 브로드 캐스트를 통해 범위를 통해 이벤트를 보낼 수 있습니다.
고마워, 네가 결국 한 일. 나는 서비스를 만들었다. – Martin