Flask默认路由如何避免重定向?

时间:2014-12-19 03:22:41

标签: angularjs redirect flask

我有一个列表页面:

$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 ...不知道如何解决,但这是另一个问题。

1 个答案:

答案 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; }
    }
})