javascript - Angular 动态从 ng-repeat 中删除过滤器

标签 javascript angularjs

我有一个像这样的 ng-repeat:

<div ng-repeat="user in staff | profAndDr">

还有一个自定义过滤器,显示标题为“博士”的人。和“教授”。仅:

app.filter('profAndDr', function() {
return function(input) {
    var out = [];
    angular.forEach(input, function(title) {
        if (title.title === 'PROF.'||title.title==='DR.') {
            out.push(title)
        }
    })
return out;
}

我需要添加一个复选框,如果选中该复选框,则会显示标题为“Prof. Amaritos”的人员。所以,基本上我需要从 ng-repeat 中删除我的过滤器(如果选中)。

链接到Codepen

谢谢!

最佳答案

您可以将变量传递到过滤器中,然后使用它来确定您的复选框是否已选中。

例如

<div ng-repeat="user in staff | profAndDr: isChecked">

然后

app.filter('profAndDr', function() {
    return function(input, isChecked) {
        var out = [];
        angular.forEach(input, function(title) {
            if (title.title === 'PROF.' || title.title==='DR.' || (isChecked && [othercondition])) {
                out.push(title)
            }
        })
    return out;
}

关于javascript - Angular 动态从 ng-repeat 中删除过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41222209/

相关文章:

javascript - 为什么 ng-src 不会触发 AngularJS 中的某些属性更改?

javascript - 查找最近的相似 sibling

javascript - 使用航路点时的最短路线

javascript - 如何清除ajax响应

javascript - typeof 关键字的行为

javascript - AngularJS $uibModal 作为具有不同 Controller 的服务

angularjs - 更改 ngclick 上的鼠标指针

javascript - Angular 6 中可滑动/可拖动的侧边导航栏,带有 Angular-material/Bootstrap

angularjs - 在 Angular 中断验证中打破多个选项卡之间的表单

AngularJS:如何测试将焦点放在元素上的指令?