我正在使用一个带有'ng-disabled'的Angular指令。似乎“禁用”属性仅在我的指令的链接阶段之后才更新。可以修复吗?
有关示例,请参阅此JSBin。
将'ng-disabled'替换为'disabled =“{{expression}}时,它确实有效(但这对旧的浏览器不起作用): JSBin
谢谢!
答案 0 :(得分:2)
查看角度代码,ngDisabled指令以这种方式工作:其链接函数注册一个更改属性的手表。
因此,angular将执行该链接功能(比你的指令更高的优先级),然后你的链接功能,然后做一个摘要,这将改变"禁用"属性。因此,调用链接函数时未设置属性也就不足为奇了。
https://github.com/angular/angular.js/blob/master/src/ng/directive/attrs.js#L354
如果你在$ timeout()调用中执行console.log调用,它将显示正确的CSS属性,因为$ timeout()在下一个摘要中执行。