2015-07-01 42 views
0

我有一個數組,其中包含區域和數組,每個數組內都有城市。我已經通過BG-重複創建列表:通過ng-repeat創建的列表不正確的過濾(AngularJS)

<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開頭的地區,但確實包含包含字母Z的城市。

對不起,可能是初級的問題,但如何解決這個問題?

回答

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> 

這將意味着過濾器只作用於你的對象的小區物業。否則角將看所有的屬性。

UPDATE:

你的第二個列表,你會想用search.district作爲這樣主要的搜索項:

<div ng-repeat="district in districts | filter:search.district:startsWith" class="district"> 

我已經更新了普拉克到包括藍色的第二個列表是這樣搜索的。

+0

這裏是更新的Plunkr http://plnkr.co/edit/FCxG4H?p=preview – Stu

+0

先生,謝謝你的幫助,但仍然不工作...在你的Plnkr嘗試點擊「Z」 –

+1

糟糕,抱歉,我更新了搜索框功能,但不是字母數組。我編輯了答案並更新了Plunkr。 – Stu