您好我在那里写了一个$ resource服务来连接api。 这是service.js中的代码
.factory('selfApi2', function ($resource, localStorageService) {
var AB = {
data: function (apiURL, header, data, params) {
return $resource("http://localhost:4000/api" + apiURL, null, {
update: {
method: 'POST',
headers: header,
data: data,
params: params
}
});
}
};
return AB;
})
在我的controller.js
中var header = {
'Content-Type': 'application/x-www-form-urlencoded'
};
var myData = {
'phone': '12345678'
};
selfApi2.data('/tableName',header,{where:{"name":"kevin"}).update(myData, function(result){
console.log("update Kevin's phone succeed",result);
})
它有效。但是为什么变量myData应该放在update()部分而不是data()部分?
答案 0 :(得分:0)
我认为这是因为“data”是一个返回$ resource对象的函数。 请尝试以下方案:
// service
.factory('api', function ($resource) {
var api = {};
api.issues = $resource("http://localhost:4000/api/issues");
api.users = $resource("http://localhost:4000/api/users", {}, {
update: {
method: 'PUT',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
},
});
return api;
})
// controller
api.users
.update({where:{name:'kevin'}})
.$promise.then(function(success) {
// DO SOMETHING
});
...
api.issues.query().$promise.then(
function(success) {
// DO SOMETHING
});
答案 1 :(得分:0)
在您的情况下,var originalNumber = 0
是一个仅创建data()
资源的函数,该资源会将ReST
apis rest
公开为默认值。
因此,在此get save query remove delete
调用中,您只需创建其余资源。使用此功能传递data()
没有任何意义。 data()调用将返回myData
实例,该实例将具有接受参数的Resource
api函数。
并且,在api构建时传递数据是没有意义的。
Here是完整的参考资料