AngularJS:“ng-repeat”中的IF语句?

时间:2016-03-29 11:15:20

标签: angularjs if-statement angularjs-ng-repeat ng-repeat

我正在使用AngularJS v1.2.9

ng-repeat内,如何使用检查对象的值并根据条件执行操作?

在英语中,例如:

if `X` is not null, then show `X`. Is it possible?

这是我的ng-repeat骨架:

<li ng-repeat="r in results">
    <div>{{ r.title }}</div>
    <div>{{ r.location }}</div>
    <!--
    if ( r.date!=="null" ) {
        <div>{{ r.date }}</div>
    } else {
        <div>Date not confirmed yet.</div>
    }
    -->
</li>

如果它不为空,我需要显示r.date。如果它为null,那么我说别的。

请帮忙。谢谢大家。

3 个答案:

答案 0 :(得分:8)

<li ng-repeat="r in results">
  <!-- If r.date contains a value, show it -->
  <span ng-if="r.date">{{r.date}}</span>
  <!-- If r.date does not contain a value show placeholder text -->
  <span ng-if="!r.date">Date not confirmed yet.<span>
</li>

另见What does an exclamation mark before a variable mean in JavaScript

答案 1 :(得分:3)

<强>更新

问题不是很清楚,所以这里只需要ng-bind指令就可以了。如果内容较大,那么您可以切换到下面@JustOneMoreQuestion建议的方式。

<li ng-repeat="r in results" ng-if="r.date">
    <div ng-bind="r.date ? r.date : 'Date not confirmed yet.'"></div>
</li>

您可以使用ng-if

轻松完成
<li ng-repeat="r in results" ng-if="r.date">
    <!--
    if ( r.date!=="null" ) {
        {{ r.date }}
    }
    -->
</li>

或者选择过滤器,过滤掉那些会创建一个元素集合,其中包含date

<li ng-repeat="r in results| filter: { date: '' }">
    <!--
    if ( r.date!=="null" ) {
        {{ r.date }}
    }
    -->
</li>

答案 2 :(得分:1)

检查一下,

<li ng-repeat="r in results" >
    <div data-ng-if="r.date !== 'null'">
        Your Date
    </div>
    <div data-ng-if="r.date == 'null'">
        Date not confirmed yet
     </div>
 </li>