我有一个像这样的 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/