Javascript 什么';修复两个同名AngularJS指令的最佳方法是什么?

Javascript 什么';修复两个同名AngularJS指令的最佳方法是什么?,javascript,angularjs,bower,Javascript,Angularjs,Bower,我有一个越来越大的项目。我的问题是第三方指令冲突,因为。。。不明智地。。。选择的指令名称,即“日期选择器” 因为我使用bower进行依赖关系管理,所以我不想编辑任何库,因为这会破坏可移植性 有人是如何解决这个问题的?在我的评论之后,我创建了一个plunker,以查看此解决方案是否可行,以及在名称冲突的情况下Angle在不同模块下的行为: 似乎如果您对不同的指令使用不同的限制,那么它确实有效(您需要在不同的指令上使用互不相同的限制) 将它们放在不同的模块中如何?感谢dustmouse,我澄清了我

我有一个越来越大的项目。我的问题是第三方指令冲突,因为。。。不明智地。。。选择的指令名称,即“日期选择器”

因为我使用bower进行依赖关系管理,所以我不想编辑任何库,因为这会破坏可移植性


有人是如何解决这个问题的?

在我的评论之后,我创建了一个plunker,以查看此解决方案是否可行,以及在名称冲突的情况下Angle在不同模块下的行为:

似乎如果您对不同的指令使用不同的限制,那么它确实有效(您需要在不同的指令上使用互不相同的限制)


将它们放在不同的模块中如何?感谢dustmouse,我澄清了我指的是第三方指令。解决方法可能是,一个作为属性('a'),另一个作为元素('E')以不同的方式进行限制。这有助于区分?“我不确定是否有解决办法。”ItamarL。我觉得Angular会使用上一次定义的任何模块,如果您试图使用它,而不是它的
restrict
属性,那么就会抛出一个错误。除了对您使用的模块进行高度选择之外,您不能做太多,这太棒了!如果指令的
restrict
属性冲突,您可能可以使用装饰器更改它们,但是您可能只能更改最后注册的属性,因为指令具有不同的访问限制级别。因为我指的是第三方库,幸运的是它们有不同的访问限制。
<!DOCTYPE html>
<html>

  <head>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
  </head>

  <body ng-app="myApp" ng-controller="myCtrl as vm">

  <div some-directive></div>
  <some-directive></some-directive>

  <script>
    var myApp2 = angular.module('myApp2',[]);
    myApp2.directive("someDirective", function() {
      return {
        restrict: 'E',
        template: 'inside myApp2'
      };
    });

    var myApp = angular.module('myApp', ['myApp2']);
    myApp.directive("someDirective", function() {
      return {
        restrict: 'A',
        template: 'inside myApp'
      };
    });


  </script>
  </body>

</html>
inside myApp
inside myApp2