我正在使用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,那么我说别的。
请帮忙。谢谢大家。
答案 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>