Angularjs Angular V 1.3.15$根据文档定制资源放置配置不起作用
这是$resource配置Angularjs Angular V 1.3.15$根据文档定制资源放置配置不起作用,angularjs,resources,put,Angularjs,Resources,Put,这是$resource配置 'use strict'; angular.module('MyApp') .factory('Doc',['$resource',function DocFactory($resource){ return $resource('/db/doc/:dbName/:docId/:docRev', null, {'upDate': { method:'PUT' }}
'use strict';
angular.module('MyApp')
.factory('Doc',['$resource',function DocFactory($resource){
return $resource('/db/doc/:dbName/:docId/:docRev',
null,
{'upDate': { method:'PUT' }}
);
}]);
删除并获得工作罚款
使用提交按钮调用更新函数
$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”的形式出现
""
很明显我错过了什么
谢谢你的帮助
问题解决了吗????无论如何,我很理解
这确实没有很好的记录。令人高兴的是,angular代码写得很漂亮,很容易理解
$resource确实需要4个参数
参数,数据,函数success(){},函数error(){}
如果调试到angular,您将看到命令args的解析就是这种情况
因此,我将对资源工厂的调用重新编码为:
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);
}
)
在angular resource中,现在将解析为
a1=参数,
a2=数据,
a3=成功,//是一个函数
a4=错误//是一个函数
除非您使用调试器并查看它是否正在运行,否则这将是胡言乱语,但当您使用调试器时,它将完全不清楚上面发布了错误的更新函数。它应该是:$scope.upDate=function(){Doc.upDate({dbName:'lol sched teams',docId:$scope.team.\u id,docRev:$scope.team.\u rev})。$promise.then(函数(数据){$scope.team=data;});}
'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!")
}
);
}
);