我认为这将是一个非常常见的事情,但我不知道如何在AngularJS中处理它。假设我有一个事件列表,想用AngularJS输出它们,这很简单:
<ul>
<li ng-repeat="event in events">{{event.title}}</li>
</ul>
但是当列表为空时,我如何处理这种情况呢?我想有一个消息框的地方,列表是类似于“没有事件”或类似的东西。唯一接近的是带有事件的ng-switch。长度(我如何检查当一个对象而不是数组时是否为空?),但这真的是我唯一的选择吗?
对于angularjs的新版本,这个问题的正确答案是使用ng-if:
<ul>
<li ng-if="list.length === 0">( No items in this list yet! )</li>
<li ng-repeat="item in list">{{ item }}</li>
</ul>
此解决方案在列表即将下载时也不会闪烁,因为必须定义列表并将消息显示的长度设置为0。
这里有一个活塞来展示它的使用:http://plnkr.co/edit/in7ha1wTlpuVgamiOblS?p=preview
提示:你也可以显示一个加载文本或旋转器:
<li ng-if="!list">( Loading... )</li>