基本上,我需要从我的angular应用程序中获取一个参数,以便在我的nodeJS服务中使用。我有一个看起来像这样的GET请求:
resource: $resource(nodeRoute + '/test'. {}, {
query: {
method: 'GET',
params: {
offset: '@offset',
limit: '@limit'
},
isArray: true,
url: ohio.resources.netreg + '/registrations'
},
}
'offset'和'limit'是我试图传递的内容,通过我的routeprovider解析块中的调用:
.when('/'. {
templateUrl: 'views/home.html',
title: 'test',
resolve: {
registrations: ['thisResource', function(thisResource){
return thisResource.resource.query(0, 2).$promise
]);
}
我试图将值0和2传递给offset和limit,这样我就可以继续在服务器端节点中使用这些值。如果在我的资源中,我硬编码偏移并限制某些值,这很有效,但我需要更新这些值,因此这需要像我上面尝试的那样工作。我错过了什么?我假设@字符仅在我有像/:offset /:limit这样的路由时才有效,但我不能在这里做到这一点。
答案 0 :(得分:1)
试试这个
resource: $resource(nodeRoute + '/test/:offset/:limit' {}, {
query: {
method: 'GET',
params: {
offset: '@offset',
limit: '@limit'
},
isArray: true,
url: ohio.resources.netreg + '/registrations'
},
}
并在解决中使用此
resolve: {
registrations: ['thisResource', function(thisResource){
return thisResource.resource.query({offset:0, limit:2}).$promise
]);
}
答案 1 :(得分:1)
如果您不想通过get指定参数,那么另一个选项是使用一个帖子,您可以在其中指定params而不必附加到您的URL。
所以在你的节点js你可以访问像
这样的帖子参数${widget.getCreated()}
然后在您的资源中而不是获取它将成为一个帖子。 在你的控制器中,你可以在你的决心中传递这样的参数。
postrouter.post('/test', function (req, res){
//you can access your post params via req.body
console.log(req.body)//gives you your passed objects
})
希望它有所帮助。!!