gpt4 book ai didi

javascript - $watch(Collection) 不捕获对象属性更改

转载 作者:行者123 更新时间:2023-11-30 17:26:59 25 4
gpt4 key购买 nike

我在模板中有这个字符串:

<li class="list__item" ng-repeat="item in items">
<input class="toggle" type="checkbox" ng-model="item.done">
<label>{{ item.description }}</label>
<button class="destroy" ng-click="remove(item)"></button>
</li>

和我 Controller 中的 js 代码:

$scope.$watchCollection('items', function(newValue, oldValue) {
cache.set($scope.items);
});

$scope.items 已定义。

当我检查一个项目时,$watchCollection 没有捕捉到这个变化。我阅读了 todo mvc 源代码并没有发现我的错误。

错在哪里?谢谢。

最佳答案

watchCollection 监视 items 集合中的细微变化。这意味着它只会在元素添加/删除到 items 集合时触发。如果您希望 watch 在您更改 item 的属性时触发,则必须使用 watch

来自文档:

Shallow watches the properties of an object and fires whenever any of the properties change (for arrays, this implies watching the array items; for object maps, this implies watching the properties).

关于javascript - $watch(Collection) 不捕获对象属性更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24054678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com