我有一个单页webapp,其中任何请求以请求为例http://localhost/appname/request*
,使用IIS URL重写模块将主页发送回客户端。
当Angular收到网页时,它会看到路线。我需要确保Angular选择routeParams。
客户请求:http://localhost/appname/request/param1/param2
$routeProvider.when('/request/:param1/:param2',{
templateUrl : 'app/views/myView.html',
controller : 'MyCtrl',
caseInsensitiveMatch : true
});
$routeProvider.otherwise({ redirectTo: '/' , caseInsensitiveMatch : true });
$locationProvider.html5Mode(true).hashPrefix('!');
控制器侦听$routeChangeSuccess
。
app.controller('MyCtrl',function($scope){
$scope.$on('$routeChangeSuccess',function(event,routeData,$timeout,$rootScope){
//routeData.pathParams are blank
});
});
此外,网址也会更改为主页。即我被重定向到http://localhost/appname
。
我做错了什么?
答案 0 :(得分:1)
如果我理解正确,你想获得路由参数,但正确的方法是将$ routeParams注入控制器:
app.controller('MyCtrl',function($scope, $routeParams){
if($routeParams.param1){
alert('SUPER FLY!');
}
});