我正在尝试使用来自服务的数据更新指令的内容。它的工作原理如下:
问题是指令不更新其内容。但是,当我在控制器中向directiveData添加定期更新时:
$interval(function() {$scope.directiveData.abc;}, 100);
指令更新其内容!
这种行为有什么解释吗?我怎样才能摆脱这种定期更新?
我在jsFiddle中模拟了问题:https://jsfiddle.net/eyNYw/857/
答案 0 :(得分:1)
scope: true
使指令范围孤立(Angular directive. Isolating the Scope of a Directive)。所以这个指令没有看到控制器变量$ scope.directiveData。
您可以像这样添加孤立变量
scope: {directiveData: '='}
'=' - 表示双向绑定
然后通过指令属性
传递$ scope.directiveData<your-directive directive-data="directiveData"></your-directive>
当您更新$ scope.directiveData时,angular会更新此指令。