javascript - $watchcollection 不适用于模型属性

标签 javascript angularjs angularjs-watch

我使用 $watchcollection 来观察我的模型的变化。我像这样初始化了我的模型

$scope.feature = {
        additional: [],
        collision: 0,
        baseTotal: 0
    }

我使用$watchcollection来检查模型更改

$scope.$watchCollection('feature', function (val) {
    var addtional = 0;
    angular.forEach(val.additional, function (e, t) {
        addtional += parseFloat(e.value.toFixed(2));
    });
},true);

问题是,仅更新 feature.additional 时不会触发此操作。
有没有人有任何解决办法,或者如果有问题请告诉我。

最佳答案

尝试使用

$scope.$watch('feature', function (newVal, oldVal) {
  var addtional = 0;
  angular.forEach(newVal.additional, function (e, t) {
    addtional += parseFloat(e.value.toFixed(2));
  });
}, true);

关于javascript - $watchcollection 不适用于模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29666031/

相关文章:

javascript - jQuery Datepicker - 选择日期之一时在输入字段中插入数据

javascript - 创建一个函数,将字符串格式化为始终在小数点后显示两位有效数字,而不使用方法

javascript - 如何查看 Javascript 对象的原型(prototype)链?

javascript - 函数作用域与 AngularJS Watches 混淆

javascript - Controller 中的 $watch 不会触发将项目插入指令中的数组

javascript - Safari 弹出窗口无法打开 - 执行 window.open() 时未返回对象

javascript - 使用jqLit​​e隐藏和显示html元素

javascript - 使用 AngularJS 时如何根据选项值而不是索引选择默认选择选项?

javascript - Angular 悬停 + 按键事件

angularjs - 观察表单模型的变化