这里有一个菜鸟问题。当我使用外部模块时,如何避免相同的指令名冲突。目前我正在使用angular bootstrap模块,但是下载了另一个module只是为了从那里使用轮播。它们都具有相同的指令名carousel
,如果我在模块中包含这两个,它会导致我的问题。
var app = angular.module('text', ['fundoo.directives', 'ui.bootstrap']);
对此最好的解决方案是什么?
答案 0 :(得分:5)
实际上所有指令都已执行,您可以使用priority
paramenter
<强>优先级:强>
当在单个DOM元素上定义了多个指令时,有时需要指定应用指令的顺序。优先级用于在调用编译函数之前对指令进行排序。优先级定义为数字。首先编译具有更高数字优先级的指令。预链接功能也按优先级顺序运行,但后链接功能以相反的顺序运行。具有相同优先级的指令的顺序是未定义的。默认优先级为0。
当您找到terminal
参数设置为true
https://docs.angularjs.org/api/ng/service/$compile
关于创建优先级的解决方案仍然比问题复杂一点,所以我会坚持@nico的解决方案
而且,这里是一个测试角度执行两者的掠夺者
答案 1 :(得分:1)
如果指令之间只有一个名称冲突,请将模块列为要用作第一个依赖项的轮播。从my test我得出结论,忽略了具有相同名称的其他指令(第一个获胜)。
答案 2 :(得分:1)
如果我我使用前缀作为我自己的Angular指令/服务/等,那就是我最近在做的事情而且我没有任何冲突问题。
或者,只需将有问题的指令重命名为更详细或具体的指令。