在替换为ui-select

时间:2015-10-05 03:27:01

标签: angularjs

在使用ui-select时,我觉得它写起来太复杂了,所以我想通过创建自己的指令来简化它。但它不起作用。

.directive('crmSelect', function($rootScope) {
 return {
    restrict : 'E',
    replace : true,
    transclude : true,
    scope : true,
    template : '<ui-select> </ui-select>'

   };
})

而且HTML非常简单:

<crm-select> </crm-select>

运行代码时,角度报告错误(错误:[$ compile:multidir] http://errors.angularjs.org/1.4.4/ $ compile / multidir?p0 = crmSelect&amp; p1 =%20(mod ... 3A%20crmui.controllers)&amp; p2 = uiSelect&amp; p3 =&amp; p4 = transclusion&amp; p5 =%3Cui-select%3E)

但如果我将模板替换为模板之类的东西:&#39; abcde&#39; ,然后它按预期工作,如果我直接在html中使用ui-select元素,它也可以正常工作。

从错误消息看,多个指令看起来有冲突,有没有人知道根本原因以及如何解决这个问题?

非常感谢。

1 个答案:

答案 0 :(得分:0)

以下可能是原因

  • 请求隔离范围的多个指令。
  • 使用transclusion选项声明的多个指令。
  • 多个指令试图定义模板或模板URL。