在Angular中使用多个控制器从同一个json文件中提取数据?

时间:2014-10-05 05:24:14

标签: angularjs

我对于angularJS来说是一个菜鸟,就像我刚开始的那样。我有一个相当简单的问题......

所以说如果我有多个控制器需要从一个JSON文件中提取数据,我会使用工厂吗?我还是不太了解服务/工厂......

您如何使用工厂从JSON文件中提取数据,以便在多个控制器中使用?

或者我只是将这整个概念弄错了?

1 个答案:

答案 0 :(得分:0)

使用$http时,您可以传递一个参数来识别您调用它的位置。我用它是这样的。

在我的ctrl中:

MyFactory.myMethod('this/is/path/to/file.php', 'getMyPosts', query);

在我的工厂,我有这个:

.factory('MyFactory', ['$http', '$q', function($http, $q){

    return {
        myMethod: function(url, resourceType, query){
            return $http({
                method: 'GET',
                url: url,
                params: {
                    resourceType: resourceType,
                    query: query
                }
            }).then(
                function(response){
                    return response.data;
                }
            );

        }
    }

}]);

现在在您的资源文件中(在我的情况下,它是.php文件),您可以检查一些条件:

$data = array();

if($_GET['resourceType'] == 'getMyPosts'){
    $data[] = add something to the $data array
}


echo json_encode($data);