Angularjs:ng-show花了一些时间来反思

时间:2016-02-19 06:49:56

标签: angularjs

我有一个搜索页面说'search_page.html'。如果用户点击搜索按钮但没有找到记录,我想显示用户'找不到记录'消息。

以下是显示消息的代码:

 <div nng-show="list.length==0">
        <span>No record is found</span>            
 </div>

<div  ng-repeat="x in list">
  --showing the record here
</div>

当用户在文本框中键入内容并单击搜索按钮时 显示“未找到记录”,如果存在搜索记录,则会在一段时间后消失,并显示记录。

任何人都可以建议我更好的解决方案。我想只在没有搜索结果的情况下显示消息。

3 个答案:

答案 0 :(得分:0)

我希望这样demo

所以基本上,让它发挥作用的是ng-repeat

<li ng-repeat='item in vm.filtered = (vm.items | filter: vm.query)'>{{item}}</li>

我保存了已过滤的项目,因此我可以检查其计数,然后在过滤项目的计数为零时显示文本的ng-if,如

<div ng-if='vm.filtered.length == 0'>No match found</div>

答案 1 :(得分:0)

所以这可以使用像:

这样棘手的代码来完成

在您的控制器中:

$scope.noRecords = false;
Service.getRecord(function(data){
  $scope.list = data.list;
  if($scope.list.length == 0){
    $scope.noRecords = true;
  }
});

在HTML中:

<div ng-show="noRecords">
        <span>No record is found</span>            
 </div>

<div  ng-repeat="x in list">
  --showing the record here
</div>

这样它应该可以正常工作

答案 2 :(得分:0)

最后,我必须更改控制器和视图。 这是我的解决方案:

在视图中:

<div class="divEmpty" id="divNoRecord">
              No record is found
</div>

<强>的CSS:

 .divEmpty {
         display:none;
         text-align:center;
    }

<强>控制器

 if ($scope.list.length == 0) {  
    angular.element(document.getElementById('divNoRecord')).show();
 }
 else {

       angular.element(document.getElementById('divNoRecord')).hide();
     }