路线定义如下:
.state('about', {
url: '/about',
controller: 'AboutCtrl',
templateUrl: 'views/about/about.html'
})
Java后端:
servletResponse.setHeader("type", "something");
servletResponse.sendRedirect("http://xxxxx/yyyy/#!/about");
那么如何在AboutCtrl中获取“type”参数?
答案 0 :(得分:1)
我对如何使用servletResponse
了解不多,但是从setHeader
方法的名称,您尝试设置标头值,而不是参数值。
有几种方法可以使用ui-router
来解析参数(我假设您正在使用ui-router
)。您可以查看此link以获取更多详情,但以下是一些方法:
如果您决定使用servletResponse.sendRedirect("http://xxxxx/yyyy/#!/about/something");
,可以执行以下操作:
.state('about', {
url: '/about/:type', //or even url: '/about/{type}'
controller: 'AboutCtrl',
templateUrl: 'views/about/about.html'
});
function AboutCtrl($stateParams){
console.log($stateParams.type); //something
}
如果您想使用查询参数servletResponse.sendRedirect("http://xxxxx/yyyy/#!/about?type=something");
,则应将州的网址与url: '/about?type'
相匹配。
如果您想使用参数而不在州url
中定义参数,则可以执行以下操作:
.state('about', {
url: '/about/',
params: {
type: null
},
controller: 'AboutCtrl',
templateUrl: 'views/about/about.html'
});
function AboutCtrl($stateParams){
console.log($stateParams.type); //something
}
您可以在提供的链接中找到更多详细信息和变体。