【发布时间】:2017-05-29 12:04:42
【问题描述】:
我在重复的项目数组上使用 angularjs 过滤器方法,并尝试使用 limitTo 过滤器过滤数字。结果未应用于 DOM 中的重复。
这里是html
<div ng-controller="demo as d">
<input type="text" ng-model="d.test" ng-change="d.filterthis(d.test)"><br>
<div ng-repeat="item in d.items | limitTo:d.limitto track by $index">
<span ng-show="!item.show">{{item.myno}}</span> -
<span ng-show="!item.show">{{$index}} - {{item.mystr}}</span><br>
</div>
</div>
带有 angularjs 的 App.js 过滤功能
this.filterthis = function(filter){
that.items.map(function(filter){
return function(obj){
obj.show=true;
if(obj.myno.toString().indexOf(filter) >-1){
console.log(obj);
obj.show=false;
}
return obj;
}
}(filter));
};
Items 是这样的数组
this.items = [{
show:false,
myno:10,
mystr:"test1"
}];
【问题讨论】:
-
您是否试图不返回根据输入字段中的值应用了
show:true的项目? -
那是相反的。很抱歉这种使用方法。你可以拿 show===hide 然后看看。过滤器是我的问题。请检查 plunkr
-
ng-show="!item.show"
-
对,但您是否只想显示您正在搜索的前三个项目?并且不显示任何与搜索文本不匹配的内容?
-
是的。如果我搜索 19,它应该显示 19,如果我搜索 1,它应该显示所有搜索的前三个,从 1 开始,限制为 3 个项目
标签: javascript angularjs angularjs-limitto array.prototype.map