Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:判断(各种类型的)输入是否为真的最简单方法_Javascript_Angularjs - Fatal编程技术网

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

Javascript AngularJS:判断(各种类型的)输入是否为真的最简单方法,javascript,angularjs,Javascript,Angularjs,我正在为动态表构建过滤器,但还没有想出一种优雅的方法来告诉角度表没有设置过滤器 假设我有一系列的复选框。如果选中一个复选框,它将显示与该复选框值匹配的项目。如果选中两个,则会显示与其中一个匹配的项目 如果未选中“无”,则我希望显示所有项目 到目前为止,我只是笨拙地检查了所有过滤器: if(!filter.one && !filter.two && !filter.three){ return; } 当我构建更多的过滤器时,这会变得很烦人 我想做的是建立一

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

假设我有一系列的复选框。如果选中一个复选框,它将显示与该复选框值匹配的项目。如果选中两个,则会显示与其中一个匹配的项目

如果未选中“无”,则我希望显示所有项目

到目前为止,我只是笨拙地检查了所有过滤器:

if(!filter.one && !filter.two && !filter.three){
    return;
}
当我构建更多的过滤器时,这会变得很烦人

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

<input type="checkbox" ng-model="filter.one; filterSet"/>

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


由于AngularJS不支持此功能,有没有简单的方法来检查我的复选框或收音机是否已设置?

不确定是否有更优雅的方法来执行此操作,但我会采取的一种方法是创建一个带有id/值/其他属性的输入对象列表

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

这样,当您想要添加一个新复选框时,在列表中创建一个新对象,循环将自动为您检查其值。看看这把小提琴:

您还可以根据每个输入对象应执行的功能为其指定自己的功能。此外,可能将这些输入输入到他们自己的服务或工厂中



更新了与您需要的类似逻辑的fiddle:

您有多少个复选框?复选框列表是静态的还是动态的?列表是静态的,但我现在有大约10个复选框,我们可能会添加更多复选框。请参阅我更新的Fiddle您的表呈现代码和筛选代码是什么样子的?可能有一种更简单的方法,这很有意义。非常感谢你的帮助。