0

我正在编写一个元素级指令,其中包含许多属性。然后使用“@”修饰符将这些属性放入隔离范围。

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

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

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

4

1 回答 1

2

不,您不能在控制器运行之前强制解析范围。在控制器中使用$observe异步获取值(并在值更改时收到通知 - 就像 $watch 一样):

controller: function($scope, $attrs) {
    $attrs.$observe('attr1', function(newValue) {
        ....
    });
}
于 2013-09-11T13:08:44.103 回答