所以,我正在创建一个线程论坛。我想添加一个徽章,以便在线程包含新注释时通知。这是我的代码,适用于包含注释的帖子。它在一个指令内,它还包含一个编译,如果这可能导致问题?:
if($scope.post.child_posts){
var scope = $scope;
scope.$watch(function(){
return scope.post.child_posts.length;
},
function(newValue, oldValue){
console.log(newValue, oldValue);
}, true);
};
这是为了输出每个级别的线程的回复数量;但是,newValue和oldValue总是一样的!当我刷新页面时,它会更新数字,但它们仍然是相同的。我做了一些搜索,看起来有一个bug,其中newValue和oldValue是相同的,但它似乎已被修复,我正在使用最新版本。
我对编程很新,所以我很感激帮助。
答案 0 :(得分:0)
请将以上代码更改为:
$scope.post.child_posts = [];
$scope.$watch('post.child_posts.length',
function(newValue, oldValue){
if(newValue !== oldValue)
console.log(newValue, oldValue);
else
console.log(newValue);
}
);
我猜的是:if条件可能会阻止$ watch设置,你也不需要深度监视(第三个参数为true),因为你正在观看长度而不是数组......