получить результат в виде объекта, используя angularjs

0

Я пытаюсь вызвать 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'},
  ];
  • 0
    Каков результат, который вы получаете?
  • 1
    Возможно, пытается $scope.results.push({'id': value.id, 'text': value.name}); ?
Показать ещё 1 комментарий
Теги:

2 ответа

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

Если результатом, который вы получаете от вызова 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});
});
0

Не достаточно ли вам получить данные, которые вы хотите получить из 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 я думаю.

Ещё вопросы

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