我有一个国家选择列表。我希望被选中的是德国(ID:2)。
当我选择一个值时,模型会保存ID,而不是整个对象。
$scope.countries = [
{ id: 1, name: 'Italy' },
{ id: 2, name: 'Spain' },
{ id: 3, name: 'Germany' },
{ id: 4, name: 'France' }
];
// DESIRED BEHAVIOUR
$scope.selectedCountry = 3; // GERMANY ID
这个小提琴表明我想要的东西:http://jsfiddle.net/Lgevdx1m/
THX。
答案 0 :(得分:0)
您的代码中的问题是带有ng-options的track by
,这可能是一个错误。
如果删除曲目,则ng-options按预期工作
如果你把它改成track by $index
那么选择了错误的元素(法国),因为它的数组中的索引是3
并且任何track by country*
都不起作用
答案 1 :(得分:-1)
嗯,德国是ID:3
// THIS WORKS, BUT THE INITIAL MODEL WOULD BE THE OBJECT
//$scope.selectedCountry = $scope.countries[2];
//$scope.selectedCountry = { id: 3, name: 'Germany' };
答案 2 :(得分:-1)
你应该这样使用ng-options="country as country.name for country in countries track by country.id"
。 Angular自己获取id并将其写入选项的值。