javascript - AngularJS 在对象初始化时观察是否触发

标签 javascript angularjs angularjs-scope

我目前正在开发 AngularJS 应用

我有一个包含一些 bool 标志的对象。我为这样的一个 bool 人创建了一个 watch 。

watch 会在对象创建时触发吗?即使 bool 标志没有改变, watch 也可以随机触发吗?

最佳答案

所以我们有(我正在与 Gianluca 合作):

scope.$watch("chartData.selectedIndicator", function() {
    if (chartData.selectedIndicator !== -1){
        highlightMessageIndicator(chartData.selectedIndicator);
    }
}, true);

...尽管没有更新chartData.selectedIndicator,但这款 watch 仍然受到打击,我想知道是否是因为在我们的chartData工厂中我们正在初始化selectedIndicator,这就是 watch 受到打击的原因?

angular
    .module("app")
    .factory("chartData", [..., chartData]);

function chartData(...) {
    var chartData = {
        selectedIndicator   : -1,

我想知道这是否可能只是按照建议检查 newValue !== oldValue 的情况?

关于javascript - AngularJS 在对象初始化时观察是否触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39452391/

相关文章:

javascript - AngularJS:如何将常量对象绑定(bind)到指令

javascript - 查找reactjs中所有类型的组件

javascript - 如何解决 12 小时格式中分钟精度丢失的问题?

angularjs - 如何在 webpack 中使用 ng-table?

javascript - 在 Controller 外更新 Angular 模型

javascript - 从 3rd 方库异步回调更新 AngularJS 范围

javascript - jquery 在子级中查找顶级表

javascript - 在调整窗口大小之前,部分 div 隐藏着微小的滚动条

css - 在 AngularJS 中不用 JQuery 获取 HTML 元素高度

javascript - 使用 ng-include 时失去作用域