2015-11-05 29 views
0

我有一个国家选择列表。我希望选中的是德国(ID:2)。这是ng选项的正确行为吗?

当我选择一个值时,模型保存了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。

回答

-1

那么,德国是ID:3

// THIS WORKS, BUT THE INITIAL MODEL WOULD BE THE OBJECT 
    //$scope.selectedCountry = $scope.countries[2]; 
    //$scope.selectedCountry = { id: 3, name: 'Germany' }; 
-1

你应该用这种方式ng-options="country as country.name for country in countries track by country.id"。 Angular自己获取id并将其写入option的值中。

+0

你没有检查你的代码,是吗? – maurycy

+0

http://jsfiddle.net/zn8uxj3y/ – Errorpro

+0

这不是我的朋友。 – Errorpro

0

你的代码中的问题是track by与ng-options,它可能是一个错误。

如果通过,该NG选项按预期工作 如果将其更改为track by $index接错元素被选中(法国),因为它在数组索引中删除轨道3

任何track by country*不一切工作

+0

问题是如果我不使用“追踪”,选项值将是“数字:1”,并在某些情况下是这样的:http://stackoverflow.com/questions/33543278/issues-with-location-搜索和选择ng选项我不需要... – Ulrira

+0

不要打扰生成的DOM,你应该关注的是你分配的'model'选择 – maurycy

+0

我的意思是,如果模型的初始值是“1”(字符串),选择选项是1(整数),它不会在开始时选择该选项! – Ulrira