关于$watch 的问题
angular.module("exampleApp",[])
.directive("unorderedList",function(){
return function(scope, element, attrs){
var data= scope[attrs["unorderedList"]];
var propertyExpression = attrs["listProperty"];
if(angular.isArray(data)){
var listElem = angular.element("<ul>");
element.append(listElem);
for(var i=0; i< data.length; i++){
(function(){
var itemElement =angular.element("<li>");
listElem.append(itemElement);
var index = i;
var watcherFn = function(watchScope){
console.log("watcherFn: " +index +" "+data[index].name);
return watchScope.$eval(propertyExpression, data[index]);
}
scope.$watch(watcherFn, function(newValue,oldValue){
console.log("$watch: "+index);
itemElement.text(newValue);
});
}())
}
}
}
})
谁能解释一下 $watch中第一个参数如果是个函数 那么应该怎么判定 它是否发生了变化,因为我尝试过 让这个函数每次的返回值都一样 ,可是我发现 即便如此$watch的第二个参数还是被触发了。