2015-11-05 22 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