Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 更新配置后刷新指令_Angularjs_Json_Angularjs Directive - Fatal编程技术网

Angularjs 更新配置后刷新指令

Angularjs 更新配置后刷新指令,angularjs,json,angularjs-directive,Angularjs,Json,Angularjs Directive,当我传递给指令的一个值被更新后,我对如何“重画”指令感到有点困惑 我有一个指令,它根据作为范围参数传递给它的配置(JSON)绘制图表。在包含指令的视图的控制器中,我可以更新此配置,并且我希望在用户更新新配置时更新该指令 配置JSON如下所示: $scope.configuration = { widget: { range: { maximum: 0, minimum: -20 } } } <

当我传递给指令的一个值被更新后,我对如何“重画”指令感到有点困惑

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

配置JSON如下所示:

$scope.configuration = {
    widget: {
        range: {
            maximum: 0,
            minimum: -20
        }
    }
}
<my-chart configuration configuration="configuration"></my-chart>
该指令如下所示:

$scope.configuration = {
    widget: {
        range: {
            maximum: 0,
            minimum: -20
        }
    }
}
<my-chart configuration configuration="configuration"></my-chart>


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

必须使用$scope.$watch或$scope.$watchCollection()。这是你的电话号码

您的代码可以是这样的

    $scope.$watchCollection('$scope.configuration.widget.range', function reInit(values){
init(values)
});
$watchCollection(obj,listener);浅表观察一个 对象,并在任何属性更改时激发(对于数组, 这意味着观察数组项;对于对象映射,这意味着 查看属性)。如果检测到更改,则侦听器 回调被触发


您必须使用$scope.$watch或$scope.$watchCollection()。这是你的电话号码

您的代码可以是这样的

    $scope.$watchCollection('$scope.configuration.widget.range', function reInit(values){
init(values)
});
$watchCollection(obj,listener);浅表观察一个 对象,并在任何属性更改时激发(对于数组, 这意味着观察数组项;对于对象映射,这意味着 查看属性)。如果检测到更改,则侦听器 回调被触发