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"