Javascript angularjs ng选项为空选项,而不是预选选项
在选择元素中将预选值显示为选定选项时出现问题。代码在这里Javascript angularjs ng选项为空选项,而不是预选选项,javascript,angularjs,ng-options,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.dat
<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"
}
}
$scope.companies=[{
id:1,
名称:“公司1”
},
{
id:2,
名称:“公司2”
}];
$scope.data={
公司:{
id:2,
名称:“公司2”
}
}
问题是,当我在部分中输入select时,默认情况下会给我一个空白选项,而不是显示“Company 2”。我做错了什么 试试这个
<select ng-model="data.company" ng-options="company.name for company in companies"></select>
$scope.data = {
company: $scope.companies[1];
};
$scope.data={
公司:$scope.companys[1];
};
您希望下拉列表中显示的值为公司名称,存储的对象为公司。在这种情况下,您需要使用,因为您直接将对象值分配给ng模型。在这种情况下,当您将对象直接绑定到数据时,company
(ng model)track by expression会将ng model
中的company.id和每个companys
元素id进行检查。若任何一个匹配,则预先选择该输入
标记
<select ng-model="data.company"
ng-options="company as company.name for company in companies track by company.id">
</select>
您可以尝试使用ng init
<select ng-init="data.company= companies[0]"
ng-model="data.company"
ng-options="company as company.name for company in companies"></select>
试试$scope.data=$scope.companys[1]
这个问题已经被回答了很多次了。仍然不起作用,我会像往常一样使用
我无法用这种方法(第一种)找出为什么不起作用,因为对象存储正确。是的,这也起作用了,但是te$scope.data将由数据库检索,因此我无法覆盖该内容。我也很感激你的回答。谢谢你:)哇,这很有效,你能解释一下为什么没有track它不起作用吗?如果你把companys对象的值设置为$scope.data={company:$scope.companys[1]},你实际上不需要使用track by;请参阅我的答案更新below@Pankaj谢谢你。它起作用了,我学会了正确使用轨道的方法expression@Scott你看了angular doc的链接了吗?答案是thwre。?@Scott基本上在你的casr中你没有使用,这就是为什么它不需要跟踪。。