Javascript 按钮和选择器在AngularJS中无法正确通信

Javascript 按钮和选择器在AngularJS中无法正确通信,javascript,html,angularjs,select,button,Javascript,Html,Angularjs,Select,Button,有一个带有一些选项和按钮的选择器 如果选择了某个选项,则会对表数据应用筛选器,并仅显示所需的数据 如果单击该按钮,则必须将选择器重置为第一个选项,并且表格必须显示所有数据 我的问题是我不能同时拥有这两种功能 这是选择器: <select ng-model="$ctrl.type"> <option value="">All</option> <option value="1">1</option> <opt

有一个带有一些选项和按钮的选择器

如果选择了某个选项,则会对表数据应用筛选器,并仅显示所需的数据

如果单击该按钮,则必须将选择器重置为第一个选项,并且表格必须显示所有数据

我的问题是我不能同时拥有这两种功能

这是选择器:

<select ng-model="$ctrl.type">
    <option value="">All</option>
    <option value="1">1</option>
    <option value="2">2</option>
</select>
<tbody>
    <tr ng-repeat="rows in $ctrl.myData | filter: {Type:type} track by $index">
        <td>
            <span>{{rows.Type}}</span>
        </td>
        <td>
            <span ng-repeat="row in rows.Names track by $index">{{rows.Names[$index]}}</span>
        </td>
    </tr>
</tbody>
现在,选择器没有任何功能。无论我选择什么,表中的数据都保持不变,不执行过滤。但是“重置”按钮起作用,如果单击它,它会将选择器重置为第一个选项

如果我从以下位置更改选择器中的第一行:

为此:

重置按钮的功能丢失,但选择器工作!如果选择了某些内容,则会过滤表格数据


如何管理它同时具有这两种功能?

您在ngRepeat指令中遇到问题。它应该是这样的:

ng-repeat="rows in $ctrl.myData | filter: {Type: $ctrl.type} track by $index"
所以它的过滤部分应该是{Type:$ctrl.Type},因为控制器实例上有$ctrl.Type,而不是$scope

class MyCtrl {
    constructor(...) {
        ...
        this.type = "";

    }
...

    doReset() {
        this.type = "";
    }
}
ng-repeat="rows in $ctrl.myData | filter: {Type: $ctrl.type} track by $index"