我遇到以下代码的问题。
<tr ng-repeat="diag in diags track by diag.id">
<td>
<select id="ddTest" ng-change="changeevent()">
<option value="">Select Number</option>
<option ng-repeat="o in orderNumbers" data-diagId="{{diag.id}}" ng-selected="o==diag.ordernumber">{{order}}
</option>
</select>
</td>
</tr>
$scope.orderNumbers= [1,2,3,4,5,6,7,8,9,10];
在diags
对象中是一个包含ordernumber
的数组。我正在尝试使用自定义属性data-diagId将ddTest下拉列表更改中的特定ordernumber
更新为diags
对象。我没有任何ddTest下拉模型(我可以根据需要添加它)。我想在加载时填充值,还需要使用选中的新订单号更新父对象。有人可以帮我这么做吗?
答案 0 :(得分:0)
在您的选择中使用ng-options
指令和ng-model
,然后每次更改选项时diag.ordernumber
都会更改,因此所选的选项会连接到模型而无需任何其他编程。这里有完整的工作示例:
var app = angular.module("diagApp", []);
app.controller("diagController", function($scope) {
$scope.orderNumbers= [1,2,3,4,5,6,7,8,9,10];
//test diags
$scope.diags=[
{id:1,ordernumber:1},
{id:2,ordernumber:2},
{id:3,ordernumber:3}
];
//to prove that diag is changing
$scope.change=function(diag){
console.log(diag);
};
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="diagApp">
<table ng-controller="diagController">
<tr ng-repeat="diag in diags track by diag.id">
<td>
<select ng-change="change(diag)" id="ddTest" ng-model="diag.ordernumber" ng-options="item as item for item in orderNumbers track by item">
</select>
</td>
</tr>
</table>
</div>
&#13;