javascript - 在 Angular JS 模板中,在父元素之间交替,同时保持子元素完整

标签 javascript angularjs

这感觉像是模板引擎中相当基本的功能,但我似乎不知何故错过了它。

假设一个这样的模板:

<a ng-if="icon.link" href="icon.link">
    <i ng-class="['fa',icon.icon_class]"></i>
</a>
<span ng-if="!icon.link">
    <i ng-class="['fa',icon.icon_class]"></i>
</span>

这将实现我想要的,但缺点是每当我想有条件地使用不同的父元素时,它都需要复制所有子元素。

有什么办法可以做到这样的事情:

<span ng-if-include-children="!icon.link">
<a ng-if-include-children="icon.link" href="icon.link">
    <i ng-class="['fa',icon.icon_class]"></i>
</a>
</span>

本质上,我只是想找出交换容器元素而不复制其所有内容的最佳方法。

最佳答案

ng-ifng-show/hide 指令发生在节点级别,这意味着如果您不显示父节点,则可以期待子节点也不显示。

回答您的问题

Is there any way to do something like:

是的,但是如果您创建自定义指令...

有更好的方法

话虽这么说,这更多的是一个外观问题,而不是一个实际的功能问题 - 请参阅我对类似问题的回答 https://stackoverflow.com/a/34595198/1121919

关于javascript - 在 Angular JS 模板中,在父元素之间交替,同时保持子元素完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34730182/

相关文章:

angularjs - Googlebot 会正确处理 angularjs 页面的 <link rel ="canonical"ref ="{{url}}>"

c# - 处理日期差异

javascript - 将 xml 文档元素添加到 html 表

javascript - 获取特定模式内所有单词的正则表达式 (% %)

javascript - 将事件附加到 Angular2 中的新元素

AngularJs:通过 $emit 在指令之间传播事件

javascript - 从内容中删除特定标签并保留短代码

javascript - 'ActionSheetIOS' 未从 'react-native-web/dist/index' 导出

unit-testing - 如何模拟指令以启用更高级别指令的单元测试?

java - 使用 ANGULARJS 从 Jersey Rest api 调用下载/保存文件。文件附有响应 "Content-Disposition"