ng-if和ng-repeat的虚拟元素

时间:2014-11-17 11:22:24

标签: angularjs-directive angularjs-ng-repeat

我是angularjs的新手。无法在li内找到将几个ng-if项目包含在一起的方法。 Knockout有虚拟元素做这些工作,比如

<ul>
    <li>This item always appears</li>
    <!-- ko if: someExpressionGoesHere -->
        <li>I want to make this item present/absent dynamically</li>
        <li>I want to make this item present/absent dynamically</li>
    <!-- /ko -->
</ul>

非常感谢帮助。

更新:封装在<div><span>之类的容器内部会在导航中使用nav时扭曲视图:

<div ng-if="!auth.user">
   <li>
    <a href="#!/signup">Sign up <span class="glyphicon glyphicon-list-alt"></span></a>
    </li>
    <li>
    <a href="#!/login">Sign in <span class="glyphicon glyphicon-log-in"></span></a>
    </li>
</div>

桑杰

2 个答案:

答案 0 :(得分:1)

它基本上类似于:

<li ng-if="conditionExpression">I want to make this item present/absent dynamically</li>

或者,如果你想避免范围界定:

<li ng-show="conditionExpression">I want to make this item present/absent dynamically</li>

<强>更新 如果您想在一个ng-if内对多个项目进行分组,则需要将它们放在容器中,或者只是分别为每个项目添加ng-if。 见example

答案 1 :(得分:-1)

请参阅How to use ng-repeat without an html element

您可以使用ng-repeat-start来避免使用ng-repeat进行额外的元素。