2016-06-29 2 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> 

И ответ от апи я получаю 1 или 0 в моем нынешнем случае {{activeState}} displays 1. Как обращаться с этим с угловым, что правильный выбор будет автоматически выбран на основе ответа?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, и я предоставлю. Спасибо

+0

В чем проблема с текущим кодом? –

+0

он автоматически не выбирает да –

+1

Можете ли вы показать какой-либо код контроллера? Я подозреваю, что возвращаемое значение из api является int, тогда как значение select преобразуется как строка, поэтому элемент не выбран. попробуйте преобразовать activeState в строку в ответе api? –

ответ

2

Проблема заключается значение 0, которое есть в value атрибута string & значение, которое вы получили от AJAX является 0 (число) так вот почему при попытке связать значение на нагрузке ее не работает. Это может быть легко исправить, изменив делать $scope.activeState = '0';

Я предпочел бы вам использовать директиву ng-options здесь, который делает связать значение с объектом value

Markup

<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); 
    }); 
Смежные вопросы