加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Angular:使用template或templateUrl时的差异

发布时间:2020-12-17 17:13:11 所属栏目:安全 来源:网络整理
导读:我在使用template属性而不是templateUrl时遇到了一个奇怪的问题. 在后者的情况下,我可以在单个元素上定义具有隔离范围的多个指令或transclude选项.这按预期工作,我没有任何错误. 然而,当简单地复制模板并将其设置为指令中的模板时,Angular突然开始抱怨多个指
我在使用template属性而不是templateUrl时遇到了一个奇怪的问题.

在后者的情况下,我可以在单个元素上定义具有隔离范围的多个指令或transclude选项.这按预期工作,我没有任何错误.

然而,当简单地复制模板并将其设置为指令中的模板时,Angular突然开始抱怨多个指令请求隔离范围或在同一元素上进行转换.

见我的这个plunkr.它在控制台中抛出错误.但是,如果要替换(在scripts.js中)

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

templateUrl: 'menu.html'

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

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

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

解决方法

我无法重现这个问题,但这里的问题实际上是替换:在menu指令的定义中为true.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读