使用<select> </select> html标记过滤AngularJS By First Letter

时间:2016-02-15 10:34:21

标签: javascript html angularjs

我想过滤ng-repeat功能(我不明白提到的是什么,原谅我)。目前我想制作一个过滤器,但过滤器功能是基于选项的第一个字母,例如,在一组数组/字符串中,我想过滤第一个字母是&#34; A&#34;或&#34; B&#34;类似的东西。

以下是HTML

的代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js">
    </script>
    <title>Belajar Angular</title>
    <script type="text/javascript">
      var app = angular.module('tesapp', []);
      app.controller('tesCtrl', function($scope,$http){
        $scope.DapatkanItem = function(){
          $http.get('json/item.json').success(function(data){
            $scope.item = data;
          });
        };

        $scope.DapatkanItem();
      });
    </script>
  </head>
  <body ng-app="tesapp" ng-controller="tesCtrl">
    <h1>Mencoba Filtering</h1>
    <div class="col col-4">
      <label class="select">
        <select name="gender" ng-model="alfabet">
          <option value="0" selected disabled>Alphabet</option>
          <option value="1">A</option>
          <option value="2">B</option>
          <option value="3">C</option>
        </select>
      </label>
    </div>
    <div ng-switch="alfabet">
      <div ng-switch-default>
        <ul ng-repeat="tes in item.stores | orderBy: 'preparation' | orderBy: 'name'">
          <li ng-if="tes.preparation == ''">{{tes.name}} kosong</li>
          <li ng-if="tes.preparation == '1'">{{tes.name}} satu</li>
          <li ng-if="tes.preparation == '2'">{{tes.name}} dua</li>
          <li ng-if="tes.preparation == '3'">{{tes.name}} tiga</li>
        </ul>
      </div>
      <div ng-switch-when="1">
        <ul ng-repeat="tes in item.stores | orderBy: 'preparation'">
          <li>{{tes.name}}</li>
        </ul>
      </div>
    </div>

  </body>
</html>
你怎么看?例如,我希望按照数组的第一个字母过滤&#34; A&#34;,然后我将在<select>标签中选择A并完成,但在这种情况下,问题是我不会&#39 ;知道我必须使用哪个函数来过滤第一个字母。

1 个答案:

答案 0 :(得分:0)

我想你可以看到这个帖子:how-to-use-regex-with-ng-repeat-in-angularjs 我会将您的选择更改为

<select name="gender" ng-model="alfabet">
  <option value="^">Alphabet</option>
  <option value="^(A|a)">A</option>
  <option value="^(B|b)">B</option>
  <option value="^(C|c)">C</option>
</select>

然后使用类似以下的过滤器

ng-repeat="tes in item.stores | regex:'name':alfabet | orderBy: 'preparation' | orderBy: 'name'"