javascript - Angular ng-repeat 过滤器在搜索后取消选中所有复选框

标签 javascript jquery angularjs checkbox

我的 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/

相关文章:

javascript - 使用 jQuery 和 CSS 的自定义菜单

javascript - AngularJS 和 sidr 库

angularjs - 带有 angular.js 1.6.4 的 angular ui-router 1.0.3 似乎使用了错误的 Promise 类型?

javascript - 如何在执行函数后重新加载 http.get 请求

javascript - 使用Jquery更改Selectpicker的标题

javascript - 从 Greensock 时间轴中以前的动画元素访问更新的 CSS 值

javascript - 从用户那里收集二进制数并在 JavaScript 中将其转换为十进制

javascript - jQuery 隐藏仅触发一次

javascript - 动态改变弹出窗口的位置

javascript - 无法插入空数组 JS