我有这个ng-repeat,为了清楚起见,我在这里分三行:
ng-repeat="row in phs.phrasesView =
(phs.phrases | orderBy:phs.phrasesOrderBy[phs.phrasesOrderById]
.key:phs.phrasesSortDirectionId == 1)">
在我的表单上,我有一个字段phs.keywordRange
有没有办法可以让它按照以下方式过滤返回的行:
A
时,只显示row.keyword以A
开头的行ABC
时,只显示row.keyword以ABC
开头的行答案 0 :(得分:1)
制作您自己的过滤器,例如this fiddle。 更改$ scope.keywordRange将相应地更新列表。
作为捷径:
.filter('keywordRange', function() {
return function(value, keyword) {
var out = [];
if(!keyword) {
return value;
}
for(var i = 0; i < value.length; i++) {
if(value[i].startsWith(keyword)){
out.push(value[i]);
}
}
return out;
};
});
function MyCtrl($scope) {
$scope.keywordRange = 'ti';
$scope.lines = [
'rest1', 'rest2', 'tiago', 'pedro', 'america'
];
}
和html
<div ng-controller="MyCtrl">
<div ng-repeat="line in lines | keywordRange:keywordRange">
<p>{{line}}</p>
</div>
</div>