Javascript 布线时角度JS布线参数约束 请考虑我的路由类似于 when('/:UserType/:LocationID', { title: 'Search', templateUrl: function(Param){ switch (Number(Param.UserType)) { case 2: return 'app/Views/Search/tutor-search.html'; break; case 3: return 'app/Views/Search/institute-search.html'; break; } } }). otherwise({ redirectTo: '/' });

Javascript 布线时角度JS布线参数约束 请考虑我的路由类似于 when('/:UserType/:LocationID', { title: 'Search', templateUrl: function(Param){ switch (Number(Param.UserType)) { case 2: return 'app/Views/Search/tutor-search.html'; break; case 3: return 'app/Views/Search/institute-search.html'; break; } } }). otherwise({ redirectTo: '/' });,javascript,angularjs,Javascript,Angularjs,上面有两个路由参数/:UserType/:LocationID应该只在参数为数字时路由,如果它带有字母表,则不应该允许路由,我不知道如何执行此操作,任何帮助都是值得的。在ui路由器中,您可以使用url matcher: 像 '/user/{id:[0-9a-fA-F]{1,8}}' 我不确定内置角度路由器。如果不是,您可以在路由更改事件中添加检查以禁止路由器 $scope.$on('$locationChangeStart',函数(事件,下一个,当前){ ..支票呢 if(stop)event.

上面有两个路由参数/:UserType/:LocationID应该只在参数为数字时路由,如果它带有字母表,则不应该允许路由,我不知道如何执行此操作,任何帮助都是值得的。

在ui路由器中,您可以使用url matcher: 像

'/user/{id:[0-9a-fA-F]{1,8}}'

我不确定内置角度路由器。如果不是,您可以在路由更改事件中添加检查以禁止路由器

$scope.$on('$locationChangeStart',函数(事件,下一个,当前){
..支票呢
if(stop)event.preventDefault();
});

你看过地图了吗?它提供
Regex参数
。比如:

title: 'Search',
// user id of at least one number, location of 2 to 8 numbers
url: '{user:[0-9]{1,*}}/{loc:[0-9]{2,8}}'

那是UI路由器,他用的是基本的角度路由器,我很糟糕。编辑了答案。但切换到UI路由器可能是一个不错的选择。还有一个要点为常规Angular
$routeProvider
提供了regexp支持:使用常规路由是我的错误此问题将对您有所帮助