AngularJS资源-URL模板未正确格式化传递的参数

AngularJS资源-URL模板未正确格式化传递的参数,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我是angularjs和ui路由器的新手,很难让资源服务使用我传递给它的参数以我想要的方式格式化GET URL 这是我的控制器代码: views: { 'detail': { templateUrl: 'app/receipts/receipts.detail.html', resolve: { receipt: function( receip

我是angularjs和ui路由器的新手,很难让资源服务使用我传递给它的参数以我想要的方式格式化GET URL

这是我的控制器代码:

views: {

            'detail': {
              templateUrl: 'app/receipts/receipts.detail.html',
              resolve: {
                receipt: 
                  function( receiptAPI, $stateParams ){

                    //send state param: receiptId to service and get data
                    var receiptAPIresponse = receiptAPI.query({receiptId:$stateParams.receiptId});
                    return receiptAPIresponse;

                }
              },

              controller: ['$scope', '$stateParams', 'receipt',
                function (  $scope,   $stateParams,   receipt) {

                    $scope.receipt = receipt;


                }]
            }, 
以下是我的资源服务,它从API请求数据:

var receiptAPIservice = angular.module('receiptAPIservice', ['ngResource']);

receiptAPIservice.factory('receiptAPI', ['$resource',
  function($resource){

    return $resource('http://myapi.url/api/receipts/:rId', {

      rId: '@receiptId',

    }, {

      query: {
        method:'GET', 
        headers:{
          'session-id':'rest-session-id-forconsumer-consumerid2',
          'Content-Type':'application/json',
          'Accept':'application/json'
        },
      }
    });
  }]);
除了服务请求URL外,这一切都可以正常工作:

http://myapi.url/api/receipts?receiptId=81
当我希望URL的格式为:

http://myapi.url/api/receipts/81
模板替换似乎不起作用,因为它在文档中指定:

有人能告诉我我遗漏了什么吗?

这行:

var receiptAPIresponse = receiptAPI.query({receiptId:$stateParams.receiptId});
需要更改为:

var receiptAPIresponse = receiptAPI.query({rId:$stateParams.receiptId});

请注意将
receiptId
重命名为
rId
属性。您需要确保参数名与URL模板中的占位符相匹配。

太明显了,我对此非常恼火……谢谢!