Angularjs 如何使用角度过滤器根据复选框值过滤文本? 查看人: 全部的 名称 类型 {{电话|过滤器:?}

Angularjs 如何使用角度过滤器根据复选框值过滤文本? 查看人: 全部的 名称 类型 {{电话|过滤器:?},angularjs,Angularjs,这里我有3个复选框,默认情况下它必须显示所有。选中复选框时,它将 应该显示适当的结果,但我不知道如何将复选框值传递给过滤器,而不重复这样的ng模型 View By : <input type="checkbox" name="filter" />All <input type="checkbox" name="filter" />name <input type="checkbox" name="filter" />type <span class="

这里我有3个复选框,默认情况下它必须显示所有。选中复选框时,它将

应该显示适当的结果,但我不知道如何将复选框值传递给过滤器,而不重复这样的ng模型

View By :
<input type="checkbox" name="filter" />All
<input type="checkbox" name="filter" />name
<input type="checkbox" name="filter" />type

<span class="displayphones">{{ phone | filter:? }}</span>
查看人:
全部的
名称
类型
{{phone | filter:all:name:type}

是否有可能以其他方式做到这一点?

您没有做到这一点的原因可能是因为您没有为您的用例使用正确的UI元素。正确的UI元素应该是无线电输入,而不是复选框。无线组是切换,而复选框不是

如果您使用无线电输入,同样很容易实现:

View By :
<input type="checkbox" name="filter" ng-model="all" />All
<input type="checkbox" name="filter" ng-model="name" />name
<input type="checkbox" name="filter" ng-model="type" />type

<span class="displayphones">{{ phone | filter:all:name:type }}</span>
全部
名称
类型
{{phone | filter:filterType}
就是这样。现在你可以走了。希望这有帮助。
如果你真的想使用一个复选框,那么它比这个要复杂一点

您没有正确理解的原因可能是您没有为您的用例使用正确的UI元素。正确的UI元素应该是无线电输入,而不是复选框。无线组是切换,而复选框不是

如果您使用无线电输入,同样很容易实现:

View By :
<input type="checkbox" name="filter" ng-model="all" />All
<input type="checkbox" name="filter" ng-model="name" />name
<input type="checkbox" name="filter" ng-model="type" />type

<span class="displayphones">{{ phone | filter:all:name:type }}</span>
全部
名称
类型
{{phone | filter:filterType}
就是这样。现在你可以走了。希望这有帮助。
如果你真的想使用一个复选框,那么它比这个要复杂一点

您可以使用数据ng真值来完成您想要的任务。它甚至可以用于复选框:

<input type="radio" ng-model="filterType" value="All" />All
<input type="radio" ng-model="filterType" value="name" />name
<input type="radio" ng-model="filterType" value="type" />type

<span class="displayphones">{{ phone | filter:filterType }}</span>



{{myCheckboxGroup}

下面是上面的文档:

您可以使用数据ng真值来完成您想要的。它甚至可以用于复选框:

<input type="radio" ng-model="filterType" value="All" />All
<input type="radio" ng-model="filterType" value="name" />name
<input type="radio" ng-model="filterType" value="type" />type

<span class="displayphones">{{ phone | filter:filterType }}</span>



{{myCheckboxGroup}
下面是上面的文档:

控制器:

<input type="checkbox" data-ng-model="myCheckboxGroup" data-ng-true-value="1" /><br >
<input type="checkbox" data-ng-model="myCheckboxGroup" data-ng-true-value="2" /><br >
<input type="checkbox" data-ng-model="myCheckboxGroup" data-ng-true-value="3" /><br >

{{myCheckboxGroup}}
视图:

控制器:

<input type="checkbox" data-ng-model="myCheckboxGroup" data-ng-true-value="1" /><br >
<input type="checkbox" data-ng-model="myCheckboxGroup" data-ng-true-value="2" /><br >
<input type="checkbox" data-ng-model="myCheckboxGroup" data-ng-true-value="3" /><br >

{{myCheckboxGroup}}
视图:


否以这种方式,一个值将被另一个值更新。它几乎就像单选按钮。我需要一些其他方法。是否可以使用单个数据ng模型获取用户选择的所有值?不,数据ng模型只是一个特定值,而不是数组。让我们使用输入类型文本作为示例,说明为什么不可能。我有三个相同的ng型号。如果我输入一个,它会更新另外两个,对吗?我将无法让它们“加入”到数组中,除非我为它们中的每一个指定唯一的ng模型。创建您自己的自定义筛选器,您也可以传递一个对象,然后您可以在筛选器中使用




{{phone | customFilter:myCheckboxGroup}
no以这种方式,一个值将被另一个值更新。它几乎就像单选按钮。我需要一些其他方法。是否可以使用单个数据ng模型获取用户选择的所有值?不,数据ng模型只是一个特定值,而不是数组。让我们使用输入类型文本作为示例,说明为什么不可能。我有三个相同的ng型号。如果我输入一个,它会更新另外两个,对吗?我无法让它们“加入”到数组中,除非我将它们中的每一个的ng模型指定为唯一的。创建您自己的自定义筛选器,您也可以传递一个对象,然后您可以在筛选器中使用




然后在筛选器中:
{{phone | customFilter:myCheckboxGroup}
为什么使用3个ng模型会有问题?通常,在Angular中,每个表单元素都有自己的ng模型。实际上,拥有3NG模型不是我的问题。我想将所有ng模型值作为一个数组传递。为什么有3个ng模型会有问题?通常,在Angular中,每个表单元素都有自己的ng模型。实际上,拥有3NG模型不是我的问题。我希望将所有ng模型值作为数组传递。