我有一个数组,其中包含区域和数组,每个数组都包含城市。我通过bg-repeat创建了列表:
<div ng-repeat="district in districts | filter:search:startsWith" class="district">
<h4 class="district-name">{{ district.district }}</h4>
<a href="{{ district.link }}">Some info</a>
<ul class="district-cities">
<li ng-repeat="city in district.cities">
{{ city }}
</li>
</ul>
</div>
当我们点击该地区开始的信件时,一切正常,但是当我们点击某个字母时,这不是地区的第一个字母,但同时它是在其中一个城市的存在,然后过滤工作不正确。
这是工作Plnkr。当您尝试点击字母A, B or G
时,一切正常,但是一旦您点击字母Z
,就会出现两个不在字母Z
上开头的地区,但是包含包含字母{的城市{1}}。
对不起,可能是,基本问题,但如何解决这个问题?
答案 0 :(得分:1)
试试这个:
<input id="q" type="text" ng-model="search.district " />
和
<ul search-list=".letter" model="search.district">
<li class="letter" ng-repeat="letter in alphabet.letter">{{ letter }}</li>
</ul>
它意味着过滤器仅作用于对象的区域属性。否则,角度将查看所有属性。
<强>更新强>
对于您的第二个列表,您希望将search.district用作主搜索项,如下所示:
<div ng-repeat="district in districts | filter:search.district:startsWith" class="district">
我已经更新了Plunk以包含第二个蓝色列表,这个列表就是这样搜索的。