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

时间:2015-02-26 17:23:00

标签: angularjs angularjs-ng-options

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

我有像这样的Role对象:

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

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

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

目前,我将此选择字段绑定到控制器上party的Role属性。

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

它正确转换了选项,但所选值(o)没有匹配的属性,因此绑定不起作用。有没有办法使用ng-options将值映射到Id,将Text映射到Name?

谢谢!

1 个答案:

答案 0 :(得分: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
      };
   }
}