Как заполнить выпадающий список, используя массив, полученный от ответа $ http в angularjs?

0

Я пытаюсь заполнить раскрывающийся список select, используя значения Months and Day, которые представляют собой два отдельных массива в файле date.json. Мой код для контроллера приведен ниже

var app = angular.module("profileApp",[]);

app.controller("dobController",function($scope,$http){
$scope.dob={};

$http.get('date.json')
.then(function(response){
    $scope.months=[];
    dob = response.data;
    months=dob.Months;
}, function(response){
     alert("Error in response");
});

Моя проблема даже в том случае, если ответ от службы http получен должным образом (я могу успешно зарегистрировать значение массива Months из ответа), я не могу заполнить раскрывающийся список выбора и остается пустым. HTML как ниже

<div class="container-fluid" ng-controller="dobController">
  <label class="col-sm-6 control-label">Date of Birth:</label>
    <div class="col-sm-6">
      <select ng-model="birthday" ng-options="option for option in months">{{months}}</select> 
    </div>
</div>

Мой файл date.json

{
"Months" : ["January","February","March","April","May","June","July","August","September","October","November","December"],
"Days" : [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
}
  • 0
    Я не думаю, что вам нужен for option . Попробуйте option in months вместо простого массива
  • 0
    Попробовал это. Считайте, что он нарушил правило синтаксиса для директивы ng-options, а выпадающий список все еще пуст
Теги:

1 ответ

1
Лучший ответ

Сделай это,

<select ng-model="selectedItem" ng-options="month as month for month in months">

DEMO APP

  • 0
    Да, это сработало. Я сделал изменения контроллера в соответствии с вашими. Хотя то, что до сих пор сбивает меня с толку, это то, почему мой контроллер не работал. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню