我对于angularJS来说是一个菜鸟,就像我刚开始的那样。我有一个相当简单的问题......
所以说如果我有多个控制器需要从一个JSON文件中提取数据,我会使用工厂吗?我还是不太了解服务/工厂......
您如何使用工厂从JSON文件中提取数据,以便在多个控制器中使用?
或者我只是将这整个概念弄错了?
答案 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);