angular 具有按对象 ID 预选值的 ng-options

angular ng-options with preselected value by object id

下面的 select 有办法拥有一个 pre-selected 俱乐部吗?

<select ng-model="c.pilot.clubIdx" ng-options="club.idx as club.name for club in c.clubs track by club.idx">

c.pilot.clubIdx = 2
c.clubs = { {idx: 1, 姓名: "club1"}, {idx: 2, 姓名: "club2"} }

select-菜单应该显示 "club2"。

由于俱乐部存储在数据库中并且可以更改,因此我喜欢在 pilots.

上仅将它们保留为 references

已解决:通过删除轨道解决了问题。

<select ng-model="c.pilot.clubIdx" ng-options="club.idx as club.name for club   in c.clubs track by club.idx" ng-selected="(club.idx == 2)?true:false">

像这样添加 ng-selected。应该是预选的

使用 underscore/lodash 在控制器中使用以下行:

var club =_.where(c.clubs, {name:"club2"});
$scope.c.pilot.clubIdx = club.idx;

在控制器中将 select 的 ng-model 设置为您想要 selected 的选项的值。类似于:$scope.c.pilot.clubIdx = 2$scope.c.pilot.clubIdx = $scope.c.clubs[1].idx

删除 track by 子句解决了问题。我不完全明白为什么,但谁知道呢。 angular doc for ngOptions