我想要实现的目标:
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'
})
答案 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`
});