离子项目中的以下代码假设events
为空时显示消息“无记录”。但是,即使events
不为空,该消息也会显示半秒钟然后消失?如何摆脱闪光灯?
<a ng-repeat="event in events">
....
</a>
<div ng-hide="events.length"> <!-- <div ng-show="!events.length"> behaves the same -->
<div ....>
No record.
</div>
<div>
更新 创建了一个可测试的plunker https://plnkr.co/edit/lchTKN6C8niAsALquHoF?p=preview,即使列表不为空,您仍可以看到红色消息仍然闪烁?
答案 0 :(得分:1)
尝试ng-cloak
和ng-hide/ng-show
<div ng-hide="events.length" ng-cloak> <!-- <div ng-show="!events.length"> behaves the same -->
No record.
<div>
对于ng-cloakngCloak 指令用于防止浏览器在加载应用程序时以原始(未编译)形式短暂显示Angular html模板。使用此指令可避免由html模板显示引起的不良闪烁效应。
<强>更新强>
由于$scope.events
数组在服务返回完成之前已使用空值初始化。惯例是使用$promise
对象在完成时访问延迟任务的结果。
var allEvents = EventService.query({ category: "Music" });
allEvents.$promise.then(function (response) {
$scope.events = response;
});