Я пытаюсь вызвать angular/ajax получить значение от API и хочу настроить мой результат в ожидании формата результатов. Я пытаюсь с моим кодом, но его вызов дважды, я не знаю, где я ошибаюсь, пожалуйста, предложите
$http.get('v1/res')
.success(function (data) {
$scope.results = [];
angular.forEach(data.data, function(value, key){
$scope.results.push({id: value.id});
$scope.results.push({text: value.name});
});
});
//Ожидающий результат
$scope.results = [
{id: 1, text: 'A'},
{id: 2, text: 'B'},
{id: 3, text: 'C'},
{id: 4, text: 'D'},
{id: 5, text: 'E'},
{id: 6, text: 'F'},
{id: 7, text: 'G'},
{id: 8, text: 'H'},
];
Если результатом, который вы получаете от вызова api, является тот же объект, что и вы, то вы можете просто сделать так, как показано ниже
//assuming that data.data is an array of objects that you wish for
$scope.result = []
angular.copy(data.data, $scope.result)
в противном случае
$scope.result = []
data.forEach(function(d){
$scope.result.push({"id":d.id, "text":d.text});
});
Не достаточно ли вам получить данные, которые вы хотите получить из data.data
, поскольку это объект со значением, которое вы хотите.
Поскольку вы хотите получить ожидающий формат, он должен быть object
с id
и text
качестве свойств, хранящихся в $scope.results
, но в вашем коде они хранятся соответственно как отдельный объект с одним свойством. Поэтому код должен быть изменен следующим образом:
angular.forEach(data.data, function(value, key){
$scope.results.push({id: value.id, text: value.name});
});
{id: value.id, text: value.name}
- это объект, который вы хотите сохранить в своей области $scope.results
я думаю.
$scope.results.push({'id': value.id, 'text': value.name});
?