有没有办法确保在使用之前解决指令范围?

时间:2013-09-11 11:36:33

标签: angularjs angularjs-directive

我正在编写一个元素级指令,它有许多属性。然后使用'@'修饰符将这些属性放入隔离范围。

该指令用于使用表达式填充属性的页面,即

<my-directive attr1="{{foo.bar}}"></my-directive>

我发现当指令控制器执行时,$ scope尚未解析表达式。有没有办法在进入控制器之前强制范围解决?

1 个答案:

答案 0 :(得分:2)

不,您无法在控制器运行之前强制解析范围。使用控制器中的$observe asynchronously获取值(并在值发生变化时收到通知 - 就像$ watch一样):

controller: function($scope, $attrs) {
    $attrs.$observe('attr1', function(newValue) {
        ....
    });
}