0

컨트롤러 또는 지시문을 다시 활성화하면 angular.element(document).ready(function(){...}); 기능이 항상 실행됩니다. 왜?컨트롤러 또는 지시문이 다시 활성화 될 때 내 준비 기능이 항상 실행되는 이유

두 개의 컨트롤러와 하나의 지시문이 있습니다. 상위 컨트롤러에서 할당 한 값을 ng-repeat으로 변경합니다. 이 변수를 변경할 때마다 컨트롤러가 다시 통합되고 준비 기능도 리콜됩니다.

이 링크를 참조하십시오 :

that.changeIndex = function(){ 
    that.arr = [{name : g++}]; 
    that.isValid = !that.isValid; 
} 

ng-repeat 파괴하고 당신의 myCon2 컨트롤러를 재현 : 귀하의 코드는 당신이 파괴하고 "변경 인덱스"를 클릭 할 때 일을 다시되도록 버튼을 설정

답변

0

angualr ready functionarr 배열을 만들 때 :

<div ng-repeat="m in con.arr track by m.name" ng-controller="myCon2 as con1"> 

및은 파괴 또는 isValid을 변경할 때 my-dir 지시어를 재현 :

<div my-dir ng-if="con.isValid">hey directive!!!!</div> 

컨트롤러와 문서가 아니라 즉시 (준비로 준비되면서 모두가 한 실행할 준비 문서에 대한 핸들러를 첨부 지시문). 문서가 처음 준비된 후에 코드가로드되면 일반적으로 여전히 실행되기 때문에 코드가 의미가 있습니다.

그런데 앵귤러 컨트롤러와 지시문 안에 문서 준비가 필요하지 않아야합니다. 초기화 코드를 맨 위에 올리거나 ng-init을 사용할 수 있습니다.