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