编程语言
首页 > 编程语言> > javascript-指令的依赖性

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