更新配置后刷新指令

时间:2016-06-27 10:14:44

标签: angularjs json angularjs-directive

一旦我传递给它的一个值被更新,我对如何“重绘”一个指令感到有点困惑。

我所拥有的是一个指令,它根据我作为范围参数传递给它的配置(JSON)绘制图表。在包含该指令的视图的控制器中,我可以更新此配置,并且我希望在用户更新新配置时更新该指令。

配置JSON如下所示:

$scope.configuration = {
    widget: {
        range: {
            maximum: 0,
            minimum: -20
        }
    }
}

该指令如下:

<my-chart configuration configuration="configuration"></my-chart>

所以当我更新配置时,我希望指令刷新内容(比如再次初始化)。

1 个答案:

答案 0 :(得分:2)

你必须使用$ scope。$ watch或$ scope。$ watchCollection()。这是link

您的代码可以是这样的

    $scope.$watchCollection('$scope.configuration.widget.range', function reInit(values){
init(values)
});
  

$ watchCollection(obj,listener);浅表的属性   任何属性更改时对象和触发(对于数组,   这意味着要观看数组项目;对于对象图,这意味着   看着这些房产)。如果检测到更改,则为侦听器   回调被解雇。