繁体   English   中英

如何将参数传递给Angular服务?

[英]How do I pass parameters to an Angular service?

我有一个Angular服务:

angular.module('transactionService', ['ngResource']).
    factory('Transaction', function($resource){ 
      return $resource('/api/transaction/:transactionId', {}, {
        'query':   {method:'GET',     params:{transactionId : ''},          isArray : true},
        'get':     {method:'GET',     params:{transactionId : '@_id.$oid'}, isArray : false},
        'save':    {method:'POST',    params:{transactionId : ''},          isArray : false},
        'update':  {method:'PUT',     params:{transactionId : '@_id.$oid'}, isArray : false},
      });
});

我称之为:

transaction = {
   _id : { $oid : '20495823405984059' }
}
Transaction.update(transaction, function(d) {});

但是它获取URL:

/api/transaction/@_id.$oid

代替:

/api/transaction/20495823405984059

该文档显示这是传递参数的正确方法,但不会进行插值。 我究竟做错了什么?

尝试:

angular.module('transactionService', ['ngResource']).
    factory('Transaction', function($resource){ 
      return $resource('/api/transaction/:transactionId', {}, {
        'query':   {method:'GET',     params:{transactionId : ''},          isArray : true},
        'get':     {method:'GET',     params:{transactionId : '@transactionId'}, isArray : false},
        'save':    {method:'POST',    params:{transactionId : ''},          isArray : false},
        'update':  {method:'PUT',     params:{transactionId : '@transactionId'}, isArray : false},
      });
});

这样称呼它:

transaction = {
   transactionId : '20495823405984059' //your problem is the key transactionId is missing
}
Transaction.update(transaction, function(d) {});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM