如何使用 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
我有以下数据:
$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