Angular JS Передача нескольких массивов в scope.list - PullRequest
1 голос
/ 30 октября 2019

У меня есть два запроса на два отдельных файла JSON. Я пытаюсь передать их в область, но я получил ошибку ngRepeat dupes .

Вот мой контроллер:

var app = angular.module('myApp', ['ngSanitize']);
app.controller('myController',
    function ($scope, $http, $sce) {
        var request = {
            method: 'get',
            url: 'scripts/data.json',
            dataType: 'json',
            contentType: "application/json"
        };

        var requestMenu = {
            method: 'get',
            url: 'scripts/menu.json',
            dataType: 'json',
            contentType: "application/json"
        };

        $scope.arrBirds = new Array;
        $scope.arrMenu = new Array;

        $http(request, requestMenu)
            .success(function (jsonData) {
                $scope.arrBirds = jsonData;
                $scope.arrMenu = jsonData;
                $scope.list = $scope.arrBirds + $scope.arrMenu;
            })
            .error(function () {

            });
    });

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Чтобы сделать два запроса $ http и объединить их данные, используйте $q.all:

app.controller('myController', function ($scope, $http, $q) {
    var request = {
        method: 'get',
        url: 'scripts/data.json',
    };

    var requestMenu = {
        method: 'get',
        url: 'scripts/menu.json',
    };

    $scope.arrBirds = new Array;
    $scope.arrMenu = new Array;

    var promise1 = $http(request);
    var promise2 = $http(requestMenu);

    $q.all([promise1, promise2]).then([response1,response2] => {
        $scope.arrBirds = response1.data;
        $scope.arrMenu =  response2.data;
        $scope.list = $scope.arrBirds.concat($scope.arrMenu);
    })
});

Для получения дополнительной информации см.

0 голосов
/ 30 октября 2019

Вы можете использовать angular.extend (dest, src1, src2, ...);https://docs.angularjs.org/api/ng/function/angular.extend

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