我正在尝试使用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?
谢谢!
答案 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
};
}
}