【问题标题】:What order are directives compiled in if they are the same priority?如果指令的优先级相同,它们的编译顺序是什么?
【发布时间】:2014-04-02 03:42:29
【问题描述】:

在 AngularJS 文档中它说(强调我的):

首先编译具有更高数值优先级的指令。预链接功能也按优先级顺序运行,但后链接功能按相反顺序运行。 相同优先级的指令顺序未定义。默认优先级为0。

看起来inputDirective 没有设置优先级,我的自定义指令也没有(它也有后链接功能)。为什么我的自定义指令在$parsers$formatters 链中首先运行?

1.2.0rc-3 之前不是这样的,事实上我必须提高我的自定义指令的优先级才能让它的解析器和格式化程序在inputDirective 之前运行。

有什么见解吗?

【问题讨论】:

    标签: angularjs angularjs-directive


    【解决方案1】:

    它可能是未定义的,因为它取决于浏览器的实现来决定对象如何排序。

    正如您在answer 中看到的:顺序是按字母顺序定义的

    希望这有帮助!

    【讨论】:

    • 感谢您的回答,这似乎是合理的!看起来inputDirective 没有指定名称,但:github.com/angular/angular.js/blob/… 你能确认这是不是真的?因为如果它被命名为inputDirective,那么我的自定义指令(restriction)应该在它之后编译,但它现在正在它之前编译。
    • 实际上,我看到它作为指令提供的位置:github.com/angular/angular.js/blob/…,它被用作两个指令,分别命名为 inputtextarea,这两个指令都按字母顺序出现在 restriction 之前。你怎么看?
    • 很好的限制在 textarea 之前,所以你使用这两个中的哪一个可能很重要?
    • wups,我得复习一下我的字母表!!使用输入
    猜你喜欢
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 2021-08-18
    相关资源
    最近更新 更多