这是我的json
[{“ year”:“ 1980”,“ Manufacturer”:“ Oldsmobile”,“ Model”:“ Cutlass”,“ Product”:“”},{“ year”:“ 1980”,“ Manufacturer”: “ Oldsmobile”,“ Model”:“ Sierra”,“ Product”:“”},{“ year”:“ 1980”,“ Manufacturer”:“ Toyota”,“ Model”:“ 4Runner”,“ Product”:“ “},{” year“:” 1980“,”制造商“:” Ford“,”型号“:” Fiesta“,”产品“:”“},{” year“:” 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;
}]);
答案 0 :(得分:0)
您的代码没有填充,因为您是将data.makes设置为一个Promise,而不是将其设置为Promise返回的数组
您可以通过在控制器初始化时调用函数来修复它
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一起使用,而不是仅仅与makes一起使用,因为makes不在范围内