AngularJS에서 범위 상속에 문제가 있습니다. 문제는 Angularjs inheriting parent scope confusion과 비슷하지만 어떻게 든 대답이 나에게 적용되지 않는 것 같습니다.AngularJS 범위 상속 설명
중첩 된 (내가 사용하는 모든 컨트롤러를 완벽하게 제어 할 수 없도록 일부 외부 구성 요소를 사용하는) 컨트롤러가 있습니다. 가장 바깥 쪽 컨트롤러와 가장 안쪽 컨트롤러는 다음과 같이 나 자신에 의해 정의됩니다.
<div ng-controller="my-outer-controller">
<div ng-controller="not-mycontroller">
<div ng-controller="more-controllers">
<div ng-controller="my-inner-controller">
</div>
</div>
</div>
</div>
function myOuterController(@scope) {
@scope.someFunction = function() {
}
}
function myInnerController(@scope) {
// This function does not exist here!
@scope.someFunction();
}
someFunction() 함수는 내부 컨트롤러에서 사용할 수 없습니다. 우선 사이에서 격리 된 범위를 만드는 몇 가지 지침이 있어야한다 생각하지만, 내가 좋아하는 뭔가를 할 때 때를 다음 그것을 수행 업무 : 나는에 관해서는 꽤 잘 이해하고 있다고 생각 그냥
@scope.$parent.$parent.someFunction()
방법 각도 범위는 그들이 나를 땅에 떨어 뜨리는 일을합니다.
왜 이런 일이 발생했는지에 대한 좋은 설명이 있지만 확실하게 볼 수는 없습니다. $ parent를 통해 액세스 할 수있는 모든 속성은 하위 범위에 의해 자동으로 상속 받았다고 생각했습니다.
지시어에 의해 'not-my-controller'가 생성 될 수 있습니까? 그렇다면 다른 방식으로 생성되어 문제가 발생할 수 있습니다. –
Dunno,하지만 문제는 여기에서 작동합니다. http://jsfiddle.net/SNLNQ/61/ –
이 답변을 확인해 보셨습니까? http://stackoverflow.com/a/14049482/2874153? – Erex