【发布时间】:2017-01-24 04:34:43
【问题描述】:
给定以下路线:
when('/contactus', {
templateUrl: 'pages/contactus.html'
}).
when('/unsubscribe/:email', {
templateUrl: 'pages/unsubscribe.html'
}).
when('/users/validate?key', {
templateUrl: 'pages/uservalidation.html'
})
在我启动这个应用程序之后
npm start
在浏览器地址栏中,如果我输入:
localhost/contactus <- GET /contactus 200
localhost/unsubscribe/abc <- GET /unsubscribe/abc 404
localhost/unsubscribe%2Fabc <- GET /unsubscribe%2Fabc 200
localhost/users/validate?key=1 <- GET /users/validate?key=1 404
localhost/users%2Fvalidate?key=1 <- GET /users%2Fvalidate?key=1 404
localhost/users%2Fvalidate%3Fkey%3D1 <- GET /users%2Fvalidate%3Fkey%3D1 404
所以我的问题是:
1)如何使 /users/validate?key=1 工作?
2)这是一种不使用url编码的方法吗?通过编码,浏览器将 /unsubscribe%2Fabc 转换为预期的 /unsubscribe/abc,但刷新页面或共付并粘贴此 url 将无法再次使用,因为它再次使用 '/' 而不是编码值。
【问题讨论】:
-
这可能对你没用,但我建议你使用
ui-router这个库扩展了ngRouter,并在查询中拥有你想要的参数类型。还有嵌套视图 -
假设你设置了
$locationProvider.html5Mode,你是否在服务器端配置了URL重写? -
@Phil 你能更具体一点吗?我假设你在谈论 base bref="/"
标签: angularjs url-routing ngroute