如何基于ng-route加载多个json数组?

时间:2015-08-07 20:15:04

标签: javascript arrays json angularjs angular-services

我对角度很新,我想知道是否有一种方法可以将多个json数组加载到我的应用程序中。基本上,我有一个json文档,其中包含类似于此示例的数据。

它在同一个文件中有多个数组。我在想,也许我可以遍历它们并加载数据,但我不确定。

{
    'title': 'myApp',
    'data1': [
        {
            'listname': 'name1',
            'id': '1'
        },
        {
            'listname': 'name2',
            'id': '2'
        },

    ],
    'data2': [
        {
            'listname': 'name1',
            'id': '1'
        },
        {
            'listname': 'name2',
            'id': '2'
        },

    ],
    'data3': [
        {
            'listname': 'name1',
            'id': '1'
        },
        {
            'listname': 'name2',
            'id': '2'
        },

    ]
}

我找到了一个加载数据的服务。

app.factory('grabData', ['$http', function($http) {
    return {
        get: function(callback) {
            $http.get('data/names.json').success(function(data) {
                callback(data);
            });
        }
    }
}]);

我的控制器如下所示,我不想加载这样的每个数据。有没有办法可以根据路由切换数组而不是逐个加载?正如您在下面看到的,这不是我这样做的最佳方式。

grabData.get(function(data){
     $scope.thedata = data;

     $scope.myTotal1 = data.data2.length;
     $scope.myList1 = data.chapter1;

     $scope.myTotal2 = data.data2.length;
     $scope.myList2 = data.data2;

     $scope.myTotal3 = data.data3.length;
     $scope.myList3 = data.data3;

     $scope.myTotal4 = data.data4.length;
     $scope.myList4 = data.data4;
});

你知道这是怎么回事。 data5,data6等

我设置了我的路线,如果我可以根据我的路线以某种方式加载它们,那么我认为这样做会很好。

0 个答案:

没有答案