Angular routeProvider声明参数集?

时间:2015-06-16 05:12:09

标签: angularjs route-provider

是否可以仅允许routeProvider中的某些选项使用angularjs?

例如,如果我有:

$routeProvider.when('/:action/view/', {

我是否只允许('篮球'棒球')将此操作设置为匹配?

2 个答案:

答案 0 :(得分:0)

如果不允许路由呼叫,您可以使用路由的redirectTo属性重定向用户:

$routeProvider.when('/:action/view/',{
    redirectTo: function(routeParams, locationPath, locationSearch){
        var allowed = ['baseball','basketball'];        //allowed action param

        if(allowed.indexOf(routeParams.action) != -1){  //route is allowed don't redirect
            return null;
        }
        else{                                           //route is denied redirect to home
            return '/home';
        }
    }
}

答案 1 :(得分:0)

未经测试,但您可以收听$ routeChangeStart,它会在路由更改之前调用,使用" next"和"当前"路由参数以确定是否允许未来路由。如果没有,请执行$ location.path将它们设置回当前路径。