在我确定$ resource不是我的东西后,我想写自己的工厂来玩我的数据。有一半写了第一个,我现在试图找出重用这个代码或我不同的restful对象的最佳方法。我应该在我定义url和key的服务中包含下面的代码,然后创建使用该服务的各个工厂吗?或者我把工厂放在工厂里?我想我的最终结果是我希望能够在我定义'object'和'key'的地方创建我的工厂。
app.factory('AssignmentData', function($http, apiUrl){
var object = 'assignments'
var key = 'assignmentid';
var url = apiUrl + object + '/';
var actions = {
query : function(params){
return $http({
method: 'GET',
url: url,
params: params
}).then(function(response){return response.data},
function(error){return error})
},
get : function(params){
return $http({
method: 'GET',
url: url + params[key],
params: _.omit(params, key)
}).then(function(response){return response.data},
function(error){return error})
},
save : function(object){
return true;
},
delete : function(object){
return true;
}
}
return actions;
});
答案 0 :(得分:1)
我认为我没有正确地提出我的问题。它可能与angularjs无关,只是我不知道如何编写javascript。最后,我写了我的工厂如下,这完成了我的目标(或者至少我认为它确实)
schedApp.factory('RestData', function($http, apiUrl){
var resource = function(object){
var url = apiUrl + object +'s';
var key = object + 'id';
var id = 'id';
var actions = {
query : function(params){
return $http({
method: 'GET',
url: url,
params: params
}).then(function(response){return response.data},
function(error){return error})
},
get : function(params){
return $http({
method: 'GET',
url: url + '/' params[key],
params: _.omit(params, key)
}).then(function(response){return response.data},
function(error){return error})
},
save : function(object){
return true;
},
delete : function(object){
return true;
}
}
return actions;
}
return resource;
});