给出以下路线:
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
,但刷新页面或自付费并粘贴此网址将无法再次使用,因为它再次使用&#39; /&#39;而不是编码值。
答案 0 :(得分:0)
app.config([
'$locationProvider', '$routeProvider',
function ($locationProvider, $routeProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false
}).hashPrefix('!');
var viewBase = '/app/views/';
$routeProvider
.when('/admin/home/appliedlist/:userid1/:userid2/:userid3', { // For appliedlist page
templateUrl: viewBase + 'EditAppliedList.html',
controller: 'EditController'
})
.otherwise({ // This is when any route not matched => error
templateUrl: viewBase + 'Error.html'
})
}]);
获取网址数据
app.controller('EditController', ['$scope', '$routeParams', function ($scope, $routeParams) {
$scope.Type = $routeParams.userid3;
$scope.Name = $routeParams.userid2;
$scope.ID = $routeParams.userid1;
}]);
并将数据传递给url
<a href="/admin/home/appliedlist/12/pravin/employee">Edit</a>
您也可以使用
编码和解码数据 <a href="/admin/home/appliedlist/12/pravin/{{MyencodingLogic(employee)}}">Edit</a>
将编码代码放入“MyencodingLogic”函数
中和解码代码在EditController中使用,您可以通过$ routeParams
获取值答案 1 :(得分:0)
正是所有其他人都遇到了这个问题:
我所做的解决方案是改变服务器,就像Phil在评论中提到的那样。
我的服务器端是节点,其中包含:
app.get('/:page', callback);
我所做的就是将其更改为:
app.get('/*', callback);
这个解决方案解决了我的两个问题。