AngularJS : IF 语句在 "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不为空,我需要显示它。如果它是空的,那么我说别的。

请帮忙。谢谢大家。

<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>

另请参阅JavaScript 中变量前的感叹号是什么意思

更新

问题不太清楚,所以这里是您想要的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>

检查这个,

<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>

最新更新