Angular JS应该将预定义的值列表作为Url参数

时间:2015-06-08 15:49:05

标签: angularjs

我想要实现的目标:

param值应该是a,b,c,d,e之一。如果参数值不在给定的值列表中,则应重定向用户。

这个实现给了我“Infinite $ digest Loop”错误。我怎样才能做到这一点?

$routeProvider
        .when("/:param", {
            templateUrl: function(params){
                if($.inArray(params.param, ["a","b","c","d","e"]) > -1)
                    return "templates/index.html";
                else
                    location.replace("#/a");
            },
            controller: 'F'
        })

1 个答案:

答案 0 :(得分:1)

您可以尝试在控制器中执行此操作,而不是在路由配置中执行此操作。以下代码假定提供的路由参数为?a=value&b=value

app.controller('MyController', function ($scope, $location) {
    var currentParams = $location.search(); // { a: 'value', b: 'value' }

    // if all required params are not present, use `$location.replace`
});