Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
Angularjs 使用选定项删除过滤器的一部分_Angularjs - Fatal编程技术网

Angularjs 使用选定项删除过滤器的一部分

Angularjs 使用选定项删除过滤器的一部分,angularjs,Angularjs,我不熟悉angularjs,我正在尝试筛选由数组填充的表 在表中:ng repeat=“exampleArray中的项|过滤器:查询” 查询由两个选项组成: <select ng-model="query.alpha" ng-options="item for item in alphas"> <option value="">All</option> </select> <select ng-model="query.bravo"

我不熟悉
angularjs
,我正在尝试筛选由数组填充的表

在表中:
ng repeat=“exampleArray中的项|过滤器:查询”

查询
由两个选项组成:

<select ng-model="query.alpha" ng-options="item for item in alphas">
    <option value="">All</option>
</select>

<select ng-model="query.bravo" ng-options="item for item in bravos">
    <option value="">All</option>
</select>

全部的
全部的
这一切都很好,除了每个select中的初始
选项
,这意味着select不应该过滤数组

看起来这可能是
null
而不是
未定义的
。我知道以下重置过滤器的方法:
$scope.query={}但这会重置每个过滤器,而不仅仅是一个过滤器

如何在不重置整个过滤器的情况下从一个选择中删除过滤器


过滤器需要了解
query.alpha
query.bravo

请看一下:

 <tbody>
    <tr ng-repeat="item in items = (exampleArray | filter: query.alpha | filter: query.bravo)">
        <td>{{item.alpha}}</td>
        <td>{{item.bravo}}</td>
        <td>{{item.charlie}}</td>
    </tr>
</tbody>

{{item.alpha}}
{{item.bravo}}
{{item.charlie}}
完整代码可从以下网址获得:

希望能有帮助


谢谢。

这确实有点像PITA,现在可能有更好的解决方案

我对你的小提琴做了一些调整,向你展示了两种处理方法。我两个都不喜欢,但他们完成了任务

第一条路是这样的:

ng-change='query.bravo = query.bravo ? query.bravo : ""'
准确地说,将该指令添加到模板中的

这是第二种方法,这是使用手表,因此它比前一种方法更不受欢迎

$scope.$watch('query.alpha',function (newVal) {
    if (newVal === null) {
        $scope.query.alpha="";
    }
});
在行动中:


我希望这能对您有所帮助。

谢谢您的演示。这很简单,也很有效。谈论一对强有力的括号。