如何使用 ng-options 设置从对象读取的 select 元素的默认值?

How to use ng-options to set default value of select element reading from object?

我有以下数据:

$scope.users = [
  {
    'id': 0,
    'name': 'Tom'
  },
  {
    'id': 1,
    'name': 'Jack'
  }
];

而且我有一个动态生成的默认对象。

$scope.default = {
  'id': 1,
  'name': 'Jack'
}

我正在尝试根据 $scope.default 在我的 ng-options 中设置默认选择的选项,但是因为它是一个对象而不是字符串,所以它似乎不起作用。

<select ng-options="user.name for user in users" ng-model="default.name"></select>

我知道另一个问题,但它不适用于对象。

how to use ng-option to set default value of select element

查看 https://docs.angularjs.org/api/ng/directive/ngInit

或尝试:

如果它是动态排序,那么您可以通过自定义字段、user.orderNum 或您可以更改的内容进行跟踪。我还没有测试过,但应该能让你朝着正确的方向前进。

默认情况下,ngModel 通过引用而不是值来观察模型。尝试

<select ng-options="user.name for user in users track by user.name " ng-model="default.name"></select>

更多here

您可以使用"as"和"track by"来定义要比较的标签和字段:

<select ng-options="user as user.name for user in users track by user.id" ng-model="default"></select>

查看 jsbin