1

我正在尝试使用 ng-options 来选择角色。

我有如下所示的角色对象:

{
    Id: 'someRoleId',
    Name: 'someRoleName
}

然后是来自服务器的选择选项列表,如下所示:

{ 
    Value: 'someRoleId'
    Text: 'someRoleName',
}

目前,我将此选择字段绑定到控制器上派对的角色属性。

<select ng-model="party.Role" ng-options="o as o.Text for o in options.RoleOptions track by o.Value" />

它正确翻译了选项,但所选值 (o) 没有匹配的属性,因此绑定不起作用。有什么方法可以使用 ng-options 将值映射到 Id,并将文本映射到名称?

谢谢!

4

1 回答 1

2

试试这个..

标记:

<select ng-model="role" ng-options="o as o.Text for o in options.RoleOptions track by o.Value" ng-model-options="{getterSetter:true}"/>

控制器:

var _role;

$scope.role = function (val) {
   if (angular.isDefined(val)) { //setter
      _role = {
           'Id': val.Value,
           'Name': val.Text
       }
   } else {
      //getter
      return {
         'Value': _role.Id,
         'Text': _role.Name
      };
   }
}
于 2015-02-26T17:38:35.730 回答