我的 AngularJS ng-repeat
过滤器有问题。
当我在 ng-repeat 中过滤输入字段时,Angular 会自动取消选中所有复选框。
我想选择特定的类别。 不可能列出我拥有的所有类别(超过 100 个),因此我使用了搜索过滤器。
angular 的“过滤”功能有效,但它会在搜索后取消选中所有复选框。复选框的 bool 值应保持不变。
这是我的代码:
<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>
这看起来很简单,但我不知道该怎么做。
最佳答案
需要改变的是
<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 等重新呈现将保持该状态。
关于javascript - Angular ng-repeat 过滤器在搜索后取消选中所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35573318/