2016-02-23 61 views
1

我的AngularJS ng-repeat過濾器出現問題。 當我用輸入字段過濾ng-repeat時,Angular將自動取消選中所有複選框。Angular ng-repeat filter在搜索後取消勾選所有複選框

我想選擇特定的類別。 不可能列出我擁有的所有類別(有100多個),因此我正在使用搜索過濾器。

角度作品的「過濾器」功能,但它在搜索後取消選中所有複選框。複選框的布爾值應該保持不變。

這是我的代碼:

<div ng-switch-when='e_categories'> 
    <div class="chat-search"> 
     <div class="fg-line"> 
      <input type="text" class="form-control" ng-model="e_categoriesFilter" placeholder="E-Categories filtern"> 
     </div> 
    </div> 
    <div vs-repeat> 
     <div class="checkbox m-10" ng-repeat="e_category in e_categories | filter:e_categoriesFilter"> 
      <label> 
       <input type="checkbox" ng-model="eCategoryFilter" ng-click='filterByECategories(e_category)' value='@{{ e_category.id }}'> 
       <i class="input-helper"></i> 
       @{{ e_category.name }} 
      </label> 
     </div> 
    </div> 
</div> 

這看起來很容易,但我不能弄清楚如何做到這一點。

回答

2

什麼需要改變的是

<input type="checkbox" ng-model="eCategoryFilter" ng-click='filterByECategories(e_category)' value='@{{ e_category.id }}'> 

<input type="checkbox" ng-model="e_category.checked" ng-click='filterByECategories(e_category)' value='@{{ e_category.id }}'> 

默認情況下,e_category.checked將默認爲false,也可以將其初始化爲false。當用戶選中複選框時,它將被存儲爲true,重新呈現將保持該狀態。

+0

這工作得很好。謝謝你! –

+0

歡迎您:-) – TheRodeo

0

過濾時,將所有選中的複選框保存到數組中,並在渲染後迭代該數組並重新選擇框。

+0

謝謝你,我明白你的意思。也行! –

相關問題