我想过滤ng-repeat功能(我不明白提到的是什么,原谅我)。目前我想制作一个过滤器,但过滤器功能是基于选项的第一个字母,例如,在一组数组/字符串中,我想过滤第一个字母是" A"或" B"类似的东西。
以下是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 ;知道我必须使用哪个函数来过滤第一个字母。
答案 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'"