gpt4 book ai didi

javascript - 当属性改变时$watch的对象不被触发

转载 作者:行者123 更新时间:2023-11-28 20:13:49 25 4
gpt4 key购买 nike

我有一个对象:

$scope.obj = {bar: 'bar 值', foo: 'foo 值'};

我想知道 bar、foo 或两者是否发生变化。

我正在这样做:

$scope.$watch('obj', function() { console.log("正在监视 obj") });

并且如果我更改对象的属性“正在监视 obj”消息,它永远不会显示。但是,如果我观看 'obj.foo''obj.bar' 我可以看到该消息。所以,问题是:

为什么当我观看'obj'时消息没有显示?我该怎么做?

这个plunker更好地显示问题...

最佳答案

您需要将 objectEquality 参数设置为 true

http://docs.angularjs.org/api/ng .$rootScope.Scope

//$watch(watchExpression, 监听器, objectEquality)

$scope.$watch('obj', function() {
console.log("watching obj")
}, true);

关于javascript - 当属性改变时$watch的对象不被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19498817/

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