一旦我传递给它的一个值被更新,我对如何“重绘”一个指令感到有点困惑。
我所拥有的是一个指令,它根据我作为范围参数传递给它的配置(JSON)绘制图表。在包含该指令的视图的控制器中,我可以更新此配置,并且我希望在用户更新新配置时更新该指令。
配置JSON如下所示:
$scope.configuration = {
widget: {
range: {
maximum: 0,
minimum: -20
}
}
}
该指令如下:
<my-chart configuration configuration="configuration"></my-chart>
所以当我更新配置时,我希望指令刷新内容(比如再次初始化)。
答案 0 :(得分:2)
你必须使用$ scope。$ watch或$ scope。$ watchCollection()。这是link
您的代码可以是这样的
$scope.$watchCollection('$scope.configuration.widget.range', function reInit(values){
init(values)
});
$ watchCollection(obj,listener);浅表的属性 任何属性更改时对象和触发(对于数组, 这意味着要观看数组项目;对于对象图,这意味着 看着这些房产)。如果检测到更改,则为侦听器 回调被解雇。