javascript - 查找在 ngRepeat 中选择的 ngOption
问题描述
我有一个用指令填充的表ngRepeat
,并且在每个项目中都是ngOptions
. 在更改时,我调用transactionListFilter
控制器中的函数以找出发生了哪些select
更改,因此我可以将所有其他设置重置select
为默认值“Multiple”。
看法
<tr data-ng-repeat="item in $ctrl.tableData">
<td>
<select
data-ng-options="item.appAndType for item in item.serviceUIs"
data-ng-model="selectedItem"
data-ng-change="$ctrl.transactionListFilter(selectedItem)" >
<option value="">Multiple</option>
</select>
</td>
</tr>
控制器
function transactionListFilter(data) {
console.log(data)
$scope.filter = data;
};
所以它应该是这样的:
但是,如果我选择第二个select
,则第一个选择 stll 将填充一个应用程序编号,而不是重置为“多个”。当我提交ngModel
值时,它会提交数据表单ngOptions
。
问题
如何识别select
从控制器中选择的选项,以便我可以将所有其他select
值重置为“多个”?
解决方案
我相信您可以在指令中使用 $index 。我已经成功地在 ng-repeat 和表单中使用它。这是一篇相关文章。
<form name="formName" class="form-horizontal">
<tr ng-repeat="notify in $ctrl.Channel.notify">
<td>{{notify.severity}}</td>
<td><input type="Text" name="name{{$index}}" ng-model="notify.name" ng-maxlength="16">
<div ng-show="formName['name' + $index].$dirty" ng-messages="formName['name' + $index].$error" style="color:maroon" role="alert">
<div ng-messages-include src="formNameErrorMessages"> </div>
</div>
</td>
</tr>
</form
在您的情况下,它可能是这样的:
<tr data-ng-repeat="item in $ctrl.tableData">
<td>
<select name="select{{$index}}"
data-ng-options="item.appAndType for item in item.serviceUIs"
data-ng-model="selectedItem"
data-ng-change="$ctrl.transactionListFilter(selectedItem)" >
<option value="">Multiple</option>
</select>
</td>
$scope.formName['select' + $index].$dirty;
推荐阅读
- jpa - 如何调用spring jap查询无参数
- python - 为什么 cross_val_scores 运行良好但 cv.splits 显示错误?
- visual-studio-code - 我无法删除通过 Windows 意外创建的 WSL 中的文件夹
- python-3.x - 我想知道这些代码之间的区别
- google-sheets - 我可以从导出 URL 指定下载的文件名吗?
- python-3.x - 我创建了一个条目小部件并将其放置在网格中,但它没有显示
- docusignapi - 无法在 Salesforce 移动应用程序/网站上完成 Doc 发送
- android - 如果满足某些条件,是否可以在没有网络的情况下使用 firebase 创建自动推送通知?
- spring-data-jpa - Spring Data Jpa @query 行为
- acumatica - Acumatica Mobile:无法将“System.Int32”类型的对象转换为“System.String”类型