一尘不染

如何在指令的attrs中监视属性

angularjs

我有一个控制器,它的计数器会不时变化。
该计数器与指令的属性绑定,并在该指令的链接函数内部读取。

每当attr值更改时,如何让指令运行函数?

谢谢。


阅读 251

收藏
2020-07-04

共1个答案

一尘不染

里面的相应的link功能:(假设你的属性称为counter你的范围变量是:scope

scope.$watch(attrs.counter, function (newTime) {
                    //do something with the new Time
});

其他方式,肯定是更有效的方式:

插值属性

在指令内部,将scope属性设置如下(它将被隔离):

scope: { counter: '@'}

counter只要link调用该函数,就会自动观察提供当前值的。

'@''='这里要好,因为我想您不会在指令中将计数器设置为新值,这意味着您只读取了它。实际上,=它对于双向数据绑定更为有用,但是您可能不需要它。

2020-07-04