ngIf
有条件地向DOM添加/删除标记。
但是如果我想有条件地将一个标签(例如内容)包装在另一个标签(例如布局)中,那么角度方式最多可以做什么呢?
以下是我在Handlebars中的表现
{{#if layout}} <div class="layout"> {{/if}}
Content is always here, it is wrapped only if layout is specified
{{#if layout}} </div> {{/if}}
答案 0 :(得分:2)
这个场景首先想到的是在包装标签上使用ng-class
。由于包装标签始终存在于DOM中,因此它并不完全符合您的要求,但您可以根据您的条件在CSS中修改其行为。
答案 1 :(得分:2)
我可能不完全理解你的最终目标,但似乎它是无效的HTML。
无论如何,您最好的选择是编写一个为您构建html的指令。
如果您对自定义指令不满意,那么更简单的工具就是 ngSwitch
。它允许您将一种方式设置为默认值,然后您将根据确定是否要包装布局的表达式切换到另一种方式。
我不喜欢在这种情况下使用ngSwitch
,它需要复制一些代码。在这种情况下,它是非常小的。
如果你必须在整个申请过程中做几次,那么在我看来,编写你自己的指令是值得的。