javascript-指令的依赖性
作者:互联网
我在我的角度应用程序中使用了第三方指令.我需要使用自己的指令扩展功能,并在指令的实例化顺序上遇到麻烦.
伪指令旨在像这样使用:
<third-party-dir ng-repeat="item in items" my-additional-dir>
<some-content />
</third-party-dir>
每当添加项目时,我都想根据第三方目录执行一些代码.但是,首先实例化了my-additional-dir,因此尚未执行第三方目录链接功能.我尝试使用“ require”添加依赖项,但是由于thirdPartyDir不使用控制器(仅使用链接功能),Angular会抛出错误.
.directive('myAdditionalDir', function(){
return {
require: '^thirdPartyDir'
restrict: 'A'
link: function(scope, element, attrs){
if (scope.$last){
//some code
}
}
}
})
Error: [$compile: ctreq] Controller 'thirdPartyDir', required by directive 'myAdditionalDir', can't be found!
我研究了链接前和链接后功能,但是默认的链接功能已经是链接后功能.关于如何在执行我的指令中的代码之前如何“等待”第三方目录的任何提示?
解决方法:
声明指令时,可以使用优先级来确定链接函数的调用顺序.
https://docs.angularjs.org/api/ng/service/$compile#-priority-
从最低到最高的顺序调用后链接.您可以查看第三方源代码以发现其顺序并将其降低.
.directive('myAdditionalDir', function(){
return {
priority: -1
标签:angular-directive,angularjs,angularjs-directive,directive,javascript 来源: https://codeday.me/bug/20191118/2028635.html