Angularjs模板:如何有条件地将标记包装在另一个标记中

Ash*_*man 5 angularjs

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}}
Run Code Online (Sandbox Code Playgroud)

Eni*_*aRM 2

我可能不完全理解你的最终目标,但它似乎是无效的 html 。

无论如何,最好的选择是编写一个指令来为您构建 html。

如果您对自定义指令不满意,那么更简单的实现是ngSwitch. 它允许您将一种方式设置为默认方式,然后您将根据确定是否包装布局的表达式切换到另一种方式。

我唯一不喜欢ngSwitch在这种情况下使用它,它需要重复一些代码。在这种情况下,它是非常小的。

如果您必须在整个应用程序中多次执行此操作,那么在我看来,编写您自己的指令来执行此操作是值得的。