我有一个列表页面:
$routeProvider.when('/', {
redirectTo:'/1', // so default will be page 1
}).when('/:page',{
controller:'listCtrl',
templateUrl:'xxxxx'
})
在控制器中将使用$ route.current.params.page来执行逻辑。
问题是:redirectTo会导致我不想要的浏览器301。(性能不佳)而且我也不希望每次点击主导航按钮,都会产生301。 / p>
如何在不使用redirectTo的情况下归档同一目标?
它是这样的:如果我使用与' /:page'相同的路径(写相同的控制器/ templateUrl),如何将页码(1)传递给控制器没有路线参数?
修改
感谢接受的答案。
将标题更改为Flask相关。
发现301是由Flask的默认路由引起的:
@bp.route('/list', defaults={'page':1})
@bp.route('/list/<int:page>')
def lst(page):
当请求uri是/ list / 1时,将301到/ list ...不知道如何解决,但这是另一个问题。
答案 0 :(得分:2)
redirectTo
中的{p> $route
实际上并没有进行HTTP重定向 - 它只是在逻辑上重定向到右侧ng-view
。因此,没有任何性能损失。
但为了完整起见,您可以在resolve
属性中传递参数:
.when('/:page?',{
controller:'listCtrl',
templateUrl:'xxxxx',
resolve: {
page: function($route) { return $route.current.params.page || 1; }
}
})