我在控制器中有这个数据
$scope.data = {
home: {
baseValue: "1",
name: "home"
},
contact: {
baseValue: "2",
name: "contract"
}
// a lot more options
};
像这样带有一些HTML:
<section class="content row" ng-repeat="item in data">
{{item.name}}
....
</section>
现在,我想知道何时更改了 baseValue
,但由于我在数据变量中使用了对象,所以无法以更简单的方式watch
属性。我尝试过类似这样的东西,但我不得不循环整个数组。$scope.$watch('data', function (newValue, oldValue, scope) {
// some code to compare the tow arrays, line by line
}, true);
我应该如何简单地使用$watch
,仅在更改baseValue
时得到通知?
类似问题:
更新1
我可以为每个对象添加一个单独的监视器以了解何时更改baseValue
,但如果我有n
个对象,而不仅仅是像这个示例中那样只有几个对象,这将不太好。
$scope.$watch('data.home', function (newValue, oldValue, scope) {
// do some stuff with newvalue.baseValue
}, true);
$scope.$watch('data.contact', function (newValue, oldValue, scope) {
// do some stuff with newvalue.baseValue
}, true);
... // Adds more individual `watch`
baseValue
何时发生了变化,但又不想为它添加单独的监视器吗? - lucuma*Timeout
吗? - public override