Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按对象id预选值的角度调整选项_Javascript_Angularjs_Ng Repeat_Ng Options - Fatal编程技术网

Javascript 按对象id预选值的角度调整选项

Javascript 按对象id预选值的角度调整选项,javascript,angularjs,ng-repeat,ng-options,Javascript,Angularjs,Ng Repeat,Ng Options,以下select俱乐部是否有一个预选俱乐部 <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”} 选择菜单应显示“club2” 由于球杆存储在数据库中,可以更改,因此我只想将其作为飞

以下
select
俱乐部是否有一个
预选俱乐部

<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”}

选择菜单应显示“club2”

由于球杆存储在数据库中,可以更改,因此我只想将其作为
飞行员
上的
参考

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


<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。应该预先选择它



添加这样选择的ng。应使用下划线/lodash在控制器中使用以下行预先选择它

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

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

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

在控制器中,将select的ng模型设置为要选择的选项的值。类似于:
$scope.c.pilot.clubIdx=2
$scope.c.pilot.clubIdx=$scope.c.clubs[1]。控制器中的idx

将select的ng模型设置为所选选项的值。类似于:
$scope.c.pilot.clubIdx=2
$scope.c.pilot.clubIdx=$scope.c.clubs[1]。idx
删除track by子句可以解决问题。我不完全明白为什么,但谁知道呢

删除track by子句可以解决此问题。我不完全明白为什么,但谁知道呢

这就是问题所在,c.pilot.clubIdx是allready值2,但它在视图中未被选中。@OlliiRenner您能用这个问题创建一个plunker吗?使用此方法设置select的值应该不会有任何问题,下面是一个示例:非常感谢。添加option.id的轨迹(在您的情况下)会重新创建问题。在我的例子中删除它-解决它:)我真的不明白为什么,但是angular docs说“在同一表达式中使用select as和track by时要小心。”@OlliiRenner啊,好的,我现在看到问题了。老实说,我不能说我完全理解,但出于某种原因,当您使用
track by
表达式时,每个选项的值都等于整个选项对象,而不仅仅是id(在您的情况下,它是
club in clubs
中的
club
)。因此,要设置默认值,您需要设置
c.pilot.clubIdx=c.clubs[1]
,而不仅仅是将其设置为id的值。这就是问题所在,c.pilot.clubIdx是allready值2,但它在视图中未被选中。@OlliiRenner您能创建一个有此问题的plunker吗?使用此方法设置select的值应该不会有任何问题,下面是一个示例:非常感谢。添加option.id的轨迹(在您的情况下)会重新创建问题。在我的例子中删除它-解决它:)我真的不明白为什么,但是angular docs说“在同一表达式中使用select as和track by时要小心。”@OlliiRenner啊,好的,我现在看到问题了。老实说,我不能说我完全理解,但出于某种原因,当您使用
track by
表达式时,每个选项的值都等于整个选项对象,而不仅仅是id(在您的情况下,它是
club in clubs
中的
club
)。因此,要设置默认值,您需要设置
c.pilot.clubIdx=c.clubs[1]
,而不仅仅是将其设置为id的值。我认为这只适用于在标记上添加选中的ng,而不是在标签上添加选中的ng