javascript - Angularjs - 指令上的 ng-disabled 执行顺序

标签 javascript angularjs angularjs-directive

我有一个带有“ng-disabled”的 Angular 指令。似乎“禁用”属性仅在我的指令的链接阶段后才更新。可以修复吗?

查看此 JSBin举个例子。

当用 'disabled="{{expression}}"替换 'ng-disabled' 时它确实有效(但这不适用于旧浏览器,即浏览器): JSBin

谢谢!

最佳答案

看看 angular 的代码,ngDisabled 指令是这样工作的:它的链接函数注册了一个更改属性的 watch 。

因此,angular 将执行该链接函数(比您的指令优先级更高),然后执行您的链接函数,然后执行摘要以更改“禁用”属性。因此,调用链接函数时未设置该属性也就不足为奇了。

https://github.com/angular/angular.js/blob/master/src/ng/directive/attrs.js#L354

如果您在 $timeout() 调用中执行 console.log 调用,它将显示正确的 CSS 属性,因为 $timeout() 在下一个摘要时执行。

关于javascript - Angularjs - 指令上的 ng-disabled 执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28787241/

相关文章:

html - 使用 AngularJS 从指令触发点击事件

javascript - React-redux 在 TypeError :Cannot read property 'map' of undefined but console having all posts 中渲染帖子时出现错误

javascript - 在文件上传问题上将图像添加到 HTML5 Canvas

javascript - 如何防止方法的 `this` 引用到调用它的对象

javascript - 如何为过滤器动态插入数组中的项目

jquery - 使用显示更少/更多选项截断多行 HTML 绑定(bind)

javascript返回对象htmlelement

javascript - 将嵌套的 Javascript 对象属性推送到多个数组中

javascript - 在其模板中使用 Angular Directive 属性

AngularJS 和 Typescript : How to assign a class/type as a directive's controller?