2016-06-29 72 views
0

這是我選擇的表單組的樣子。根據Angular的迴應自動選擇選項

<div class="form-group"> 
    <label>Active</label> 
    <select class="form-control" ng-model="activeState" > 
     <option ng-value="0" >No</option> 
     <option ng-value="1" >Yes</option> 
    </select> 
</div> 

而且從API我得到的迴應是我目前的情況下{{activeState}} displays 110。如何處理這個角度,正確的選擇將根據響應自動選擇?

如果您需要任何其他信息,請讓我知道,我會提供。謝謝

+0

當前代碼有什麼問題? –

+0

它不會自動選擇是的 –

+1

你可以顯示任何控制器代碼?我懷疑來自api的返回值是一個int,而選擇值被轉換爲一個字符串,因此,該元素未被選中。嘗試將activeState轉換爲api響應中的字符串? –

回答

2

的問題是0值,它是存在於value屬性string &你從阿賈克斯拿到了價值0(數),所以這就是爲什麼當您嘗試綁定的負載值它不工作。這可以很容易地通過改變做$scope.activeState = '0';

我寧願你在這裏使用ng-options指令修正其不綁定值與對象value

標記

<select class="form-control" ng-model="activeState" 
    ng-options="yesNo.value as yesNo.name for yesNo in yesNoOptions"> 
</select> 

代碼

$scope.yesNoOptions = [ 
    {name: 'No', value: 0}, 
    {name: 'Yes', value: 1} 
]; 
$scope.activeState = 0; 

Demo here

+0

是的,那是真的,謝謝! –

1

你得到的HTML代碼表明你正在尋找一個字符串。沒有看到響應內容,這是一個很好的猜測,你得到一個整數回來。

http.get(yourUrl,{}).then(function(response){ 
     $scope.activestate=response.data.toString();//this converts the responseData to a string and assigns it to the model object, replacing the original assignment in your controller 
    }, function(error){ 
     console.log(error); 
    });