我有一个搜索字段,当我搜索某些内容但没有找到任何内容时,我会向用户显示一条消息,但是当有内容显示时,消息错误会显示3到4秒,此后消息是消失,搜索结果出现......
我的HTML:
<div>
<h2>Search page</h2>
<div class="container clearfix" ng-controller="restaurantsDataCtrl" group-by="category">
<restaurants-gallery ng-show="restaurants.length" category="{{list.category}}" restaurants="{{list.restaurants}}" ng-repeat="list in restaurantsByCategory">
</restaurants-gallery>
<p ng-show="!restaurants.length">Message nothing found.</p>
</div>
</div>
我需要的是设置此消息的显示时间,当此时间结束时,angular将知道是否显示消息。
答案 0 :(得分:0)
您可以做的一件事是创建一个标志来指示您的数据请求是否已经开始:
$scope.completed = false
然后在数据请求的回调中将该标志设置为true:
...
$http.get(...).then(function(response) {
$scope.completed = true;
$scope.restaurants = response.data;
}
如果您将其与条件结合起来,看看实际上是否有餐馆,您可以保证只有在您尝试获取数据后才会显示该消息,并且没有任何内容返回:
<p ng-show="!restaurants.length && completed">Message nothing found.</p>
以下是该想法的一个小例子:http://plnkr.co/edit/IYtSKMHco52rHGWTT55W?p=preview