Angular ng-options 映射 "select" 部分到不同的模型属性

Angular ng-options mapping "select" portion to different model properties

我正在尝试使用 ng-options select 角色。

我有如下所示的 Role 对象:

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

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

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

目前我将这个 select 字段绑定到控制器上一方的角色 属性。

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

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

谢谢!

试试这个..

标记:

<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
      };
   }
}