gpt4 book ai didi

javascript - 为什么AngularJS ngInlude的优先级执行在400?

转载 作者:行者123 更新时间:2023-12-02 15:45:07 26 4
gpt4 key购买 nike

当我遇到 AngularJS API 指南时,我碰巧看到 AngularJS 优先级以 400 执行。为什么如此具体,我们可以使用“优先级属性”覆盖此优先级吗?

<ng-include
src="string"
[onload="string"]
[autoscroll="string"]>
</ng-include>

最佳答案

因为这是 Angular 设计者认为应该使用他们的指令的级别。现在,如果您的问题是为什么优先级比 Angular Directive(指令)定义的原因是

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.

参见this了解更多信息。

如果您想查看 Angular 核心指令优先级的一般聚合列表,而不是 here这是。也是 good 之一阅读 Angular Directive(指令)。

并且“我们可以使用“优先级属性”覆盖此优先级吗?”:您无法覆盖 AngularJS 内置指令。但是,您可以定义多个具有相同名称的指令,并针对同一元素执行它们。通过为指令分配适当的优先级,您可以控制指令是在内置指令之前还是之后运行

Angular 允许修改指令的优先级,以选择一个指令先于另一个指令执行。例如 ng-repeat 的优先级为 1000,这实际上高于自定义指令(默认优先级为 0)。您可以使用此数字作为指导,了解如何设置与之相关的指令的优先级。

  angular.module('x').directive('customPriority', function() {
return {
priority: 1001,
restrict: 'E',
compile: function () {
return function () {...}
}
}
})

这个plunker展示了如何构建一个在内置 ng-click 之前执行的 ng-click 指令。单击链接时,自定义 ng-click 将首先运行,然后是内置 ng-click。

关于javascript - 为什么AngularJS ngInlude的优先级执行在400?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32264222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com