javascript - 多个指令的执行顺序是什么?

标签 javascript angularjs angularjs-scope angular-directive

假设我想创建一个具有隔离范围的新指令,该指令与已经具有 ng-model 的输入元素进行交互。我如何确定 ng-model 是否会绑定(bind)到正确的范围。

<input name="first_input"  type="text"  mydir-mod="compare"  mydir-main ng-model="hi"/>

正如您在这里看到的 http://plnkr.co/edit/SGhOSx?p=preview mydir-main 创建隔离范围。 ng-model 会选择绑定(bind)哪个范围?这取决于顺序吗?顺序是如何确定的?为什么 mydir-mod 总是在 mydir-main 之前执行?

最佳答案

您可以设置一个priority属性。

这是文档的一个片段:

When there are multiple directives defined on a single DOM element, sometimes it is necessary to specify the order in which the directives are applied. The priority is used to sort the directives before their compile functions get called. Priority is defined as a number. Directives with greater numerical priority are compiled first. Pre-link functions are also run in priority order, but post-link functions are run in reverse order. The order of directives with the same priority is undefined. The default priority is 0.

关于javascript - 多个指令的执行顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33653641/

相关文章:

javascript - 如果在数组中找不到任何输入值,则阻止表单提交

javascript - 如何在不使用Jquery的情况下根据滚动位置找到当前div

javascript - 如何在 Angular-dashboard-framework 中调用关闭小部件的函数?

javascript - Angular 指令 - 如果未设置范围怎么办?

javascript - 为什么使用 ng-model 时无法设置输入值?

具有类型和默认值的 Javascript 方法

javascript - Amchart Clicklabel 事件不起作用

javascript - 显示/隐藏 SELECT 选项?

jquery - AngularJS - 基于父 ng-repeat 在 ng-repeat 中排序和解析数据

javascript - 服务器和客户端的 meteor 收集有所不同