首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监视指令范围不起作用

监视指令范围不起作用
EN

Stack Overflow用户
提问于 2016-11-14 12:24:41
回答 1查看 30关注 0票数 0

上下文

我的控制器存储一个数组。当按下键盘上的特定快捷方式时,我会向该数组添加一个新对象。

数组在指令中用于显示图表。

因此,在快捷方式按下图表应该更新新的值。

控制器

代码语言:javascript
复制
vm.observation = [{
    "sale": "202",
    "year": "2010"
}, {
    "sale": "215",
    "year": "2011"
}, {
    "sale": "179",
    "year": "2012"
}, {
    "sale": "199",
    "year": "2013"
}, {
    "sale": "134",
    "year": "2014"
}, {
    "sale": "176",
    "year": "2015"
}];

指令

代码语言:javascript
复制
angular.module('spwApp.directives')
    .directive('linechart', [function() {
        return {
            restrict: 'E',
            scope: {
                id: "@",
                observation: "="
            },
            link: function($scope, element, attrs) {
                $scope.$watch("observation", function(newVal, oldVal){
                    console.log("OBS : " + newVal);
                }, true);
            }
        }
    }])

代码语言:javascript
复制
<linechart id="linechart3" observation="vm.observation"></linechart>

当页面加载图表时,正确地显示数据,并且控制台正确地登录到$watch中,则正确执行。

无论如何,在按快捷方式之后,$watch不会被触发,而数组将被更新。

我找不到代码中的错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-14 12:33:00

在数组中添加一些内容,但是数组本身保持不变。常规观察者只对更改的值作出反应。这就是角形也提供$watchCollection的原因

代码语言:javascript
复制
$scope.$watchCollection("observation",

$watchCollection还监视数组的内容,即检查某个内容是否被删除或添加。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40588723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档