Angularjs Angular V 1.3.15$根据文档定制资源放置配置不起作用

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' }}

这是$resource配置

'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!")
            }
        );


    }
);