这是$ resource配置。
'use strict';
angular.module('MyApp')
.factory('Doc',['$resource',function DocFactory($resource){
return $resource('/db/doc/:dbName/:docId/:docRev',
null,
{'upDate': { method:'PUT' }}
);
}]);
删除并获取正常工作
使用提交按钮
调用upDate函数$scope.upDate = function(){
Doc.upDate({dbName: 'lol-sched-teams',
docId: $scope.team._id,
docRev: $scope.team._rev})
.$promise.then(function (data) {
$scope.team = data;
});
}
当我调试到angular时,我发现url的'/ db / doc /'部分工作正常但是':docId /:docRev'没有被解析以构建整个url。
因此,在Express服务器上,请求以'req:PUT / db / doc'
的形式出现···
显然我错过了很多东西!
任何帮助表示赞赏
解决问题????无论如何都很清楚。
这真的没有很好的记录。令人高兴的是,角度代码写得很漂亮,易于理解。
$ resource真的有4个参数 params,data,function success(){},function error(){}
如果调试为angular,你会看到命令args的解析就是这种情况 所以我通过将对资源工厂的调用重新编码为:
来使PUT工作Doc.upDate({dbName: 'lol-sched-teams',
docId: $scope.team._id,
docRev: $scope.team._rev},
$scope.team,
function success(data){
console.log(data);
},
function error(err){
console.log(err);
}
)
在角度资源中,现在将解析为 A1 =参数, A2 =数据, a3 =成功,//是一个功能 a4 =错误//是一个函数
除非你使用调试器并查看它运行,否则这将是所有乱码,但是当你这样做时,它将是完全模糊的
答案 0 :(得分:0)
'use strict';
angular.module('MyApp')
.factory('Doc',
[
'$resource',
function DocFactory($resource){
/*You must set de params of the resource*/
return $resource('/db/doc/:dbName/:docId/:docRev',
{
dbName : '@dbName',
docId : '@docId',
docRev : '@docRev'
},
{
upDate: {
method:'PUT',
url : '/db/doc/:dbName/:docId/:docRev' // can change
params: {
dbName : '@dbName',
docId : '@docId',
docRev : '@docRev'
}
}
}
);
}
]
);
....
/*First you must have a Doc resource*/
$scope.upDate = Doc.get({ // or $scope.upDate = new Doc();
dbName : 'someDbName',
docId : 'someDocId',
docRev : 'someDocRev'
}).$promise.then(
function(){
//$scope.upDate is now a Doc,
//Now you can call it here or in other event
$scope.upDate.$upDate({
dbName : 'newDbName',
docId : 'someDocId',
docRev : 'newDocRev'
}).then(
function(){
console.log("OK!")
}
).error(
function(){
console.log("UPS!")
}
);
}
);