2016-06-27 56 views
0

我有点困惑,一旦我传递给它的一个值被更新,如何“重绘”一个指令。更新配置后刷新指令

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

配置JSON的样子:

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

而且该指令的样子:

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

所以,当我更新我想指令刷新内容的设置(如重新初始化它) 。

回答

2

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

您的代码可以是这样的

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

$ watchCollection(OBJ,听众);浅表注意 对象的属性,并在任何属性更改时触发(对于数组, 这意味着要观看数组项目;对于对象映射,这意味着 需要注意属性)。如果检测到更改,则会触发监听器 回调。