Javascript 使用Limito过滤角度对象中的数字

Javascript 使用Limito过滤角度对象中的数字,javascript,angularjs,angularjs-limitto,array.prototype.map,Javascript,Angularjs,Angularjs Limitto,Array.prototype.map,我正在对重复的项目数组使用angularjs过滤器方法,并尝试使用Limito过滤器过滤数字。结果不会应用于DOM中的repeat 这是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 | lim

我正在对重复的项目数组使用angularjs过滤器方法,并尝试使用Limito过滤器过滤数字。结果不会应用于DOM中的repeat

这是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>
Items是这样的数组

this.items = [{
        show:false,
        myno:10,
        mystr:"test1"
    }];

将“show”作为项目的键,不会将其从
ng repeat
中删除,因此
limito
过滤器仍将返回项目。相反,您应该像这样在重复中利用过滤器

<input type="text" ng-model="d.search"><br>
<div ng-repeat="item in d.items | filter:{myno:d.search} | limitTo:d.limitto track by $index">
    <span>{{item.myno}}</span> - 
    <span>{{$index}} - {{item.mystr}}</span><br>
</div>

{{item.myno}}- {{$index}}-{{item.mystr}}
注意顺序在这里很重要,如果你
limito
然后
filter
你只是在过滤限制结果。您可以通过将
{myno:d.search}
更改为不同的键来更改筛选所依据的键,或者,如果要搜索整个对象,只需使用
d.search


是否尝试不返回基于输入字段中的值应用了
show:true
的项目?这是相反的。对不起,这种用法。您可以将show===隐藏,然后查看它。过滤器是我的问题。请检查plunkrng show=“!item.show”是否正确,但您是否正在尝试仅显示您正在搜索的前三个项目?并且不显示任何与搜索文本不匹配的内容?是的。如果我搜索19,它应该显示19,如果我搜索1,它应该显示所有搜索中的前三个,从1开始,限制为3项。OK cool。我有一个多过滤器实现,没有使用基于对象的过滤器。现在效果很好。这是我真正的需要。非常感谢。。。哈克斯顿
<input type="text" ng-model="d.search"><br>
<div ng-repeat="item in d.items | filter:{myno:d.search} | limitTo:d.limitto track by $index">
    <span>{{item.myno}}</span> - 
    <span>{{$index}} - {{item.mystr}}</span><br>
</div>