angularjs - Angular : difference when using template or templateUrl

标签 angularjs templates kendo-ui transclusion

在使用 template 属性而不是 templateUrl 属性时,我遇到了一个奇怪的问题。

对于后者,我可以在单个元素上定义具有隔离范围的多个指令或 transinclude 选项。这按预期工作,我没有收到任何错误。

然而,当简单地复制模板并将其设置为指令中的 template 时,Angular 突然开始提示多个指令在同一元素上请求隔离范围或嵌入。

查看此plunkr我的。它会在控制台中引发错误。但是,如果您要替换(在scripts.js中)

template: "<ul kendo-menu k-orientation=\"'vertical'\" k-direction=\"'right'\"></ul>",

templateUrl: 'menu.html'

该指令有效(尝试右键单击文本)。 HTML 文件的内容与字符串中的内容完全相同。

有人知道为什么会出现这种不一致吗?

编辑:为了避免混淆,我需要存在嵌入选项,因为我想重用此元素并能够配置在单独使用的每个位置显示哪些元素。

最佳答案

我无法重现该问题,但这里的问题实际上是 menu 指令定义中的 replace: true

这意味着 kendomenu 指令都试图依次替换该元素。保留 menu 包装器可以解决问题:http://plnkr.co/edit/vGhEVNfz35elCtxXSMxO?p=preview

关于angularjs - Angular : difference when using template or templateUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21884891/

相关文章:

c++ - decltype(function) 的类型是什么?为什么我不需要 "const"限定符?

c++ - 在类方法内部访问和分配的多维 map 模板

javascript - 您可以向 Kendo 窗口添加模态背景吗?

javascript - 未捕获的 TypeError : Cannot call method 'removeClass' of undefined, 剑道小部件无法正常工作

javascript - Angular-Kendo TreeView - 使用 div 和 span 模板

unit-testing - 在单元测试中清除 Angular 模块

JavaScript 数据数组的值(value)翻倍

angularjs - 从 Controller $scope 发出的事件 $ 并不总是到达 $rootScope 中定义的监听器

C++ 模板限制

jquery - Kendo UI 网格外键不刷新