带有angularJS的IIS URL重写模块不起作用

时间:2013-10-02 20:02:34

标签: angularjs angularjs-routing

我有一个单页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

我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你想获得路由参数,但正确的方法是将$ routeParams注入控制器:

app.controller('MyCtrl',function($scope, $routeParams){
    if($routeParams.param1){
        alert('SUPER FLY!');
    }

});

http://docs.angularjs.org/tutorial/step_07