首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度:使用模板或templateUrl时的差异

角度:使用模板或templateUrl时的差异
EN

Stack Overflow用户
提问于 2014-02-19 15:24:09
回答 3查看 3.7K关注 0票数 4

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

在后一种情况下,我可以在单个元素上定义具有独立作用域的多个指令或transclude选项。这就像预期的一样,我没有发现任何错误。

但是,当简单地复制模板并将其设置为指令中的template时,角突然开始抱怨多个指令请求在同一个元素上隔离作用域或转换。

看看我的普鲁克尔。它在控制台中抛出一个错误。但是,如果要替换(在scripts.js中)

代码语言:javascript
复制
template: "<ul kendo-menu k-orientation=\"'vertical'\" k-direction=\"'right'\"></ul>",

使用

代码语言:javascript
复制
templateUrl: 'menu.html'

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

有人知道为什么会发生这种不一致吗?

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-20 07:14:13

显然,这种不一致已经修复在新版本的角形。

我们使用的是1.0.8,只有在使用template选项时才会发生正确的行为(在多个指令要求对同一个元素进行转换时抛出错误)。当使用templateUrl选项时,不会抛出错误,并且指令按预期工作(这仍然困扰着我的头脑)

编辑:使用compile函数修复它,并删除replace选项。工作示例这里

票数 1
EN

Stack Overflow用户

发布于 2014-02-19 15:42:58

我无法重现这个问题,但这里的问题实际上是replace: truemenu指令的定义中。

这意味着kendomenu指令都试图依次替换元素。保存menu包装修复了问题:http://plnkr.co/edit/vGhEVNfz35elCtxXSMxO?p=preview

票数 1
EN

Stack Overflow用户

发布于 2014-02-19 18:13:26

问题来自transclude: true,您还忘记在模板中添加<li>元素。如果定义了replace: true,它将用其子元素替换原始元素。

它适用于我,无论是使用template还是templateUrl更新柱塞

编辑:关于这方面有一个悬而未决的问题:https://github.com/angular/angular.js/issues/4357

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21884891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档