gpt4 book ai didi

javascript - Angular $watch 对象并获取属性名称

转载 作者:行者123 更新时间:2023-11-30 10:13:03 24 4
gpt4 key购买 nike

我想$watch一个对象的任何属性的变化,并且当其中任何一个发生变化时,获取它的名字(除了newValue旧值).

这可能吗?

最佳答案

这个问题已经有两年了,但我刚刚遇到了同样的问题,我想我会分享我的解决方案。在 1.2 版本中,您曾经可以通过在监视函数中引用 this.exp 来访问已更改的属性,但可能出于性能原因而被弃用。获取更改后的属性的最简单方法是循环遍历新对象和旧对象并按属性名称比较值。

$scope.settings = {
'opt1' : 'something',
'opt2' : 'something else',
'opt3' : 'another something',
};

$scope.$watchCollection('settings', function(newObj, oldObj) {

// Loop through new object and compare
angular.forEach(newObj, function(val, key) {
if(newObj[key] !== oldObj[key]) {

// settings[key] changed
}
});

}, true);

关于javascript - Angular $watch 对象并获取属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25434612/

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