当我的控制器或指令重新强化angular.element(document).ready(function(){...});
函数时总是运行。为什么呢?
我有两个控制器和一个指令。我从父控制器更改值,该控制器分配给ng-repeat
。每当我更改此变量时,控制器也会重新定位并准备好功能调用。
请参阅此链接:angualr ready function
答案 0 :(得分:0)
您的代码设置为当您单击"更改索引时,您正在销毁和重新创建内容。按钮:
that.changeIndex = function(){
that.arr = [{name : g++}];
that.isValid = !that.isValid;
}
ng-repeat
在您创建新的myCon2
数组时销毁并重新创建arr
个控制器:
<div ng-repeat="m in con.arr track by m.name" ng-controller="myCon2 as con1">
当您更改ng-if
时,my-dir
会销毁或重新创建您的isValid
指令:
<div my-dir ng-if="con.isValid">hey directive!!!!</div>
控制器和指令都将一个处理程序附加到文档就绪,只要文档准备就绪就会运行(不仅仅是文档准备就绪)。这是有道理的,因为如果您的代码在文档最初准备就绪后加载,您通常仍希望它能够运行。
顺便说一下,您不应该在Angular控制器和指令中使用文档就绪。您可以将初始化代码放在它们的顶部,也可以使用ng-init
。