我的问题是如果第一个路径参数是有效的“排序”值,我应该加载一个控制器,例如。
data()
否则它应该加载我的错误页面。
我的routeProvider条目如下所示:
@media(min-width:768px) {
#page-content-wrapper {
padding-left: 250px;
position: relative;
}
}
我的问题是无论给出什么值,都会加载控制器
/date
/name
/ asdf应加载错误页面。
我的问题是有没有办法为命名组指定有效值(可能使用正则表达式),或者我必须指定多个routeProvider条目,例如。
$routeProvider.
when('/:sort', {
controller: 'myCtrl'
})
.otherwise({
templateUrl: 'error.html'
});
如果这是唯一的解决方案,请跟进问题:
在我的控制器中,我使用routeParams检索值:sort,非常方便。
如果我不使用命名组而是为每个有效排序值都有$ routeProvider条目,则sort的值将不包含在$ routeParams中。
我是否必须解析路径才能获得正确的排序值,或者是否有更简单的方法?
谢谢。
答案 0 :(得分:0)
$ routeChangeStart就是你要找的!
只需查看$route的文档,每当路线发生变化时,都会发生此事件。
$rootScope.$on("$routeChangeStart", function (event, next, current) {
//next is the next route information and current the current route.
// if regex.dontMatch(next) then redirect else don't do anything
});
其中regex.dontMatch是你的正则表达式函数