仅在过滤时显示ng-repeat

时间:2016-03-11 06:54:42

标签: angularjs

我想使用过滤ng-repeat值 ng-repeat="obj in object | filter :searchtext"

但只有在用户为searchtext提供值后才会显示结果。 它不应该列出页面加载本身的值。

提前致谢:)

2 个答案:

答案 0 :(得分:3)

您可以在ng-show=searchtext元素上使用ng-repeat

试试这个片段

function ListCrtl($scope) {

  $scope.items = [1, 2, 3, 4, 5];

}
<!DOCTYPE html>
<html ng-app>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script>
 
</head>

<body>

  <div ng-controller="ListCrtl">
    <input ng-model="search.term" />
    <p ng-show="search.term" ng-repeat="item in items|filter:search.term">{{item}}</p>
  </div>

</body>

</html>

答案 1 :(得分:1)

有这样的条件

ng-if="searchtext" ng-repeat="obj in object | filter :searchtext"

示例:

<!doctype html>
<html ng-app="docsSimpleDirective">
  <head>
<script type="text/javascript" src="http://code.angularjs.org/1.2.13/angular.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
  <body>

<div ng-controller="Ctrl">
  <input type="search" class="form-control" placeholder="Rechercher" data-ng-model="search" />

  <div ng-if="search" ng-repeat="departement in depatements | filter:search">
  <pre>{{departement}}</pre>
  </div>

</div>


  </body>
</html>

<强>的script.js:

angular.module('docsSimpleDirective', [])
  .controller('Ctrl', function($scope) {

    $scope.depatements = [
      {"codeDept": "01", "libelleDept": "D1", "libelleRegion":"R1", "codeRegion": "04"},
      {"codeDept": "02", "libelleDept": "D2", "libelleRegion":"R2", "codeRegion": "08"},
      {"codeDept": "03", "libelleDept": "D3", "libelleRegion":"R3", "codeRegion":"09"}
  ];

  })