javascript - angularjs ng-option 空白选项改为预选

标签 javascript angularjs ng-options

我在将预选值显示为选择元素中的选定选项时遇到问题。代码如下

<select ng-model="data.company" ng-options="company as company.name for company in companies"></select>


$scope.companies =[{
    id:1,
    name:"Company 1"
},
{
    id:2,
    name:"Company 2"
}];

$scope.data = {
    company:{
        id:2,
        name:"Company 2"
    }
}

问题是,当我进入该部分时,选择会默认给我一个空白选项,而不是显示“Company 2”。我做错了什么?

最佳答案

您需要使用track by在这种情况下,因为您直接将对象值分配给 ng-model 。在这种情况下,当您将对象直接绑定(bind)到 data.company(ng-model) 时,通过表达式检查 ng-model 中的 company.id 与每个companies 元素 id。如果任何一个匹配,它就会预先选择该输入。

标记

<select ng-model="data.company" 
   ng-options="company as company.name for company in companies track by company.id">
</select>

Demo Plunkr

关于javascript - angularjs ng-option 空白选项改为预选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34276191/

相关文章:

javascript - 从 $http 服务返回选项列表时,ng-option 不起作用

php - 多个 ng-options 下拉菜单无法正常工作?

javascript - Jquery 对话框调整大小仅在第一次打开时发生

javascript - 如何在点击时做一个下拉菜单

javascript - cakephp 外部 js 文件中的图像声明

javascript - 根据Angularjs中的下拉选择(自定义指令)刷新div的内容

javascript - 如果我重组数据以供使用,如何让 Firebase 自动更新它?

jquery - icheck 复选框不适用于 angularjs

javascript - 选择第一个选项时使选择无效

javascript - 我在哪里可以下载 eclipse 的基本服务器配置?