AngularJS资源-URL模板未正确格式化传递的参数
我是angularjs和ui路由器的新手,很难让资源服务使用我传递给它的参数以我想要的方式格式化GET 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
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模板中的占位符相匹配。太明显了,我对此非常恼火……谢谢!