Select 获取对象而不是字符串值

Select getting an object instead of a string value

我正在尝试制作一个表格以便在数据库中添加一个 user 但在这个表格中我想为 "Role" 制作一个 select 所有角色已经存在于数据库中。 但是当我 select 角色和我 post 我的表单时,在 json 中 属性 获取数据库中已经存在的对象的值,其角色与我相同想给我的新用户戴上,我怎么能只拿 "text" 而不是整个对象呢?

<select ng-model="formData.role"
        ng-options="user as user.role for user in users">
</select>

我觉得是这样的

<select ng-model="formData.role"
     ng-options="user.role as user.role for user in users">
</select>

也可以参考docs

假设您想要 user.role 那么它应该是文本而不是整个用户:

<select ng-model="formData.role"
        ng-options="user.role as user.role for user in users">
</select>

ng-options="u.role as u.role for u in users" 就可以了。这是一个演示:

var myApp = angular.module('myApp', []);

function MyCtrl($scope) {
  $scope.users = [{firstname: 'Jon', role : 'Admin'},
                  {firstname: 'Rob', role : 'User'},
                  {firstname: 'Ned', role : 'Guest'}];
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="MyCtrl">
  Roles: <select ng-model="selected" ng-options="u.role as u.role for u in users"></select>
  selected: {{selected}}
</div>