Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 如何在AngularJS select下拉列表中设置预选项?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在AngularJS select下拉列表中设置预选项?

Javascript 如何在AngularJS select下拉列表中设置预选项?,javascript,angularjs,Javascript,Angularjs,我正在努力让Angular的select ng选项来选择表单加载时已经存在的项 我有一个模型(ctrl.modelEl.make),它是一个汽车品牌,有名称和id。它是表单正在处理的更广泛模型的一部分。它通过RESTAPI从数据库中下拉 为了填充汽车品牌下拉列表,我对数据库进行ReST调用,并获得所有品牌的列表(ctrl.makeListEl) 以下是我的选择: <select ng-model="ctrl.modelEl.make.id" ng-options="item.name fo

我正在努力让Angular的select ng选项来选择表单加载时已经存在的项

我有一个模型(ctrl.modelEl.make),它是一个汽车品牌,有名称和id。它是表单正在处理的更广泛模型的一部分。它通过RESTAPI从数据库中下拉

为了填充汽车品牌下拉列表,我对数据库进行ReST调用,并获得所有品牌的列表(ctrl.makeListEl)

以下是我的选择:

<select
ng-model="ctrl.modelEl.make.id"
ng-options="item.name for item in ctrl.makeListEl track by item.id"/>

我尝试了
ng selected=“ctrl.model.make.id”
,但没有什么不同

如果两个单独的数据库调用可能存在竞争条件,我将ctrl.makeListEl创建放在ctrl.model创建的成功回调中,但没有任何区别

根据我所阅读的内容,使用主模型的id和下拉列表模型的id跟踪应该能够使Angular预先选择具有与主模型id匹配的id的下拉项

但当用户编辑现有数据库条目时,它对我不起作用。选择框应该包含数据库中已有的内容时为空

我被卡住了

提前感谢您的帮助


John

select
将模型的对象/值与
track by
值或
select as
值匹配(有关详细信息,请参阅文档中的更多内容)。如果您需要更多帮助,请在plunker中重现您的问题尝试一下
$scope.item.name='the item'
。我经常看到这个建议,但我不知道如何利用它。在通过select指令将项添加到DOM中之前,该项不存在于控制器中。那么如何在控制器中设置item.name呢?我正在使用“controller as var”模式,而不是将$scope注入到我的控制器中。我找到了答案!与其他地方建议的按id匹配不同,我必须按model和model.id的组合进行匹配,如下所示:
ng model=“ctrl.modelle.make”ng options=“item.name for item in ctrl.makeListEl track by item.id”