首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AngularJS:判断(各种类型的)输入是否为真的最简单的方法

AngularJS:判断(各种类型的)输入是否为真的最简单的方法
EN

Stack Overflow用户
提问于 2016-02-03 15:26:24
回答 1查看 41关注 0票数 1

我正在为动态表构建过滤器,还没有想出一种优雅的方法来告诉角度,没有设置过滤器。

假设我有一系列的复选框。如果选中一个,它将显示与该复选框值匹配的项。如果您检查两个,它将显示与其中一个或另一个匹配的项。

如果没有检查,我想显示所有的项目。

到目前为止,我只是尴尬地检查了所有的过滤器:

代码语言:javascript
运行
复制
if(!filter.one && !filter.two && !filter.three){
    return;
}

当我构建更多的过滤器时,这会变得很烦人。

我想做的是建立这样一个双重模型:

代码语言:javascript
运行
复制
<input type="checkbox" ng-model="filter.one; filterSet"/>

这样,每个复选框不仅告诉我设置了特定的过滤器,还告诉我设置了一个过滤器--任何过滤器。

由于AngularJS不支持这一点,是否有任何简单的方法来检查是否设置了我的复选框或收音机?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-03 16:06:09

不确定是否有一种更优雅的方法来做到这一点,但我要采取的一种方法是使用id/value/其他属性列出输入对象的列表。

然后,您可以只需ng-repeat这些复选框(或者手动将它们一次放入一个假设您知道它们在列表中的位置)。这还允许您遍历输入列表,并让循环检查它们的值(而不是冗长的if语句)。

这样,当您想要添加一个新复选框时,在列表中创建一个新对象,循环将自动为您检查它的值。看看这把小提琴:https://jsfiddle.net/ahmadabdul3/84esk49L/1/

您还可以根据每个输入对象应该执行的功能,为其提供自己的功能。而且,可能会将这些输入输入到自己的服务或工厂中。

使用与您所需要的类似的逻辑进行更新:https://jsfiddle.net/ahmadabdul3/84esk49L/2/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35181028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档