我有一个问题,我需要发布一个表的id字段来更新db中记录的外键,但是我使用ng-options
属性来填充select的选项。我在线搜索并发现设置值我必须使用ng-model="dataSet.desiredColumnName"
来更改我选择的其他列的值
所以我为select选择了这段html;
<select id="affiliation" ng-model="affiliationTable.affiliation_id" ng-change="alert(jQuery('#affiliation option:selected').val());" name="affiliation" ng-options="row.desc for row in affiliationTable"></select>
问题是,我想根据单击html表中的哪一行来选择一个特定的选项。表格定义如下;
<tr ng-repeat="row in tableData">
<!--{{row.name}}-->
<td>
<a href='#' ng-click="invokeModal(row);" id="{{row.id}}">{{row.name}}</a>
</td>
<td>{{row.active}}</td>
<td>{{row.end_date}}</td>
<td>{{row.start_date}}</td>
</tr>
和invokeModal使用选定的行来确定在select#affiliation;
中选择哪个选项$scope.invokeModal = function (row) { //memberDescription
if(row == undefined){
//blah blah ...
}else{
//blah blah ...
angular.forEach($scope.affiliationTable, function (affiliation) {
if (affiliation.id == row.affiliation_id) {
$scope.affiliationTable.affiliation_id = affiliation.affiliation_id;
}
});
}
//invokes the modal window that select#affiliation is held within
jQuery("#mem").modal('show');
};
我的问题是,似乎它在选择的开头添加了一个空选项并选择了该选项。 。 .wtf?
答案 0 :(得分:3)
我认为你需要纠正ng-option表达式,它应该是
row.id as row.desc for row in affiliationTable
从代码中分配model属性时,select上的ng-model值应该是相同的类型。您正在分配表的id属性,因此在选择模型时,应使用id
属性更新当前它被设置为完整行对象。
答案 1 :(得分:-1)
ng-options =“作为标签组的值作为列表中对象的groupName”
值可以是任何唯一标识符,label可以是要显示的任何文本,groupname是基于需要对哪些项进行分组的值,对象是将在其上进行遍历的列表的对象。