在使用 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
。
这意味着 kendo
和 menu
指令都试图依次替换该元素。保留 menu
包装器可以解决问题:http://plnkr.co/edit/vGhEVNfz35elCtxXSMxO?p=preview
关于angularjs - Angular : difference when using template or templateUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21884891/