0

我有一个问题,我需要发布表的 id 字段以更新数据库中记录的外键,但我正在使用该ng-options属性来填充选择的选项。我在网上搜索,发现要设置我必须用来ng-model="dataSet.desiredColumnName"将值更改为我选择的任何其他列的值

所以我有这段 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?

4

2 回答 2

3

我认为您的 ng-option 表达式需要更正,应该是

row.id as row.desc for row in affiliationTable

当您从代码中分配模型属性时,选择上的 ng-model 值应该是相同的类型。您正在分配表的 id 属性,因此选择模型应该使用id当前设置为完整行对象的属性进行更新。

于 2013-10-10T09:15:28.137 回答
-1

ng-options="value as label group by groupName 为列表中的对象"

value 可以是任何唯一标识符,label 可以是要显示的任何文本,groupname 是基于哪些项目需要分组的值,而 object 是列表中将进行遍历的对象。

于 2016-03-13T14:06:16.150 回答