Почему ng-options не заполняет этот выпадающий список? - PullRequest
0 голосов
/ 10 октября 2018

Вот мой json

[{"year": "1980", "Manufacturer": "Oldsmobile", "Model": "Cutlass", "Product": ""}, {"year": "1980", "Производитель": "Oldsmobile", "Модель": "Sierra", "Продукт": ""}, { "год": "1980", "Производитель": "Тойота", "Модель":"4Runner", "Продукт": ""}, { "год": "1980", "Производитель": "Форд", "Модель": "Фиеста", "Продукт": ""}, { "год":"1980", "Производитель": "GMC", "Модель": "Ландшафт", "Продукт": ""}]

и мой HTML

<label class="item item-select">
<span class="input-label">
Select
</span>
<select ng-model="data.make" ng-options="make.Manufacturer for make in 
makes">
</select>
</label>

Я, наверное,здесь что-то очень простое.Данные доступны в консоли $ scope.data.makes.

Отредактировано для добавления моего JavaScript

function ($scope, $stateParams, getProducts) {

$scope.data = {
   "year" : $stateParams.year,
   "make" :""
}


$scope.data.makes =    getProducts.getMakesByYear($scope.data.year).then(function(data){})


}

Отредактировано для добавления моей функции:

var ret = {
    all: function(){

        return $http.get(api_url).then(function(resp){

            return resp.data;
        });

    },

    single: function(id){




        return $http.get(api_url+"search?Id="+id).then(function(resp){

            return resp.data;
        });

    },

  getMakesByYear: function(year){




        return $http.get(car_url+"search?year="+year).then(function(resp){

            return resp.data;
        });


    }
}



ret.all();

return ret;

}]);

1 Ответ

0 голосов
/ 10 октября 2018

Ваш код не заполняется, потому что вы устанавливаете data.makes для обещания вместо того, чтобы устанавливать его в массив, который обещание возвращает

, вы можете исправить это, вызвав функцию, когда контроллер инициализирует

function ($scope, $stateParams, getProducts) {

$scope.data = {
   "year" : $stateParams.year,
   "make" :"",
   "makes" : []
}

getProducts.getMakesByYear($scope.data.year).then(function(data){
   $scope.data.makes = data;
})
}

также ... убедитесь, что вы используете правильную переменную data.makes вместо makes

<select ng-model="data.make" ng-options="make as make.Manufacturer for make in data.makes">

Если функция возвращает работоспособнуюjson, тогда он должен работать с data.makes, а не просто с make, потому что make не находится непосредственно в области действия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...