向Aurelia中的路由添加查询参数

向Aurelia中的路由添加查询参数,aurelia,Aurelia,我有一个分页的API,看起来像http://127.0.0.1:8000/api/articles/?page=2我希望在中的前端使用相同的分页 我为下一页和上一页创建了两个按钮: <button type="button" click.delegate="getArticles(articles.previous)">prev</button> <button type="button" click.delegate="getArticles(ar

我有一个分页的API,看起来像
http://127.0.0.1:8000/api/articles/?page=2
我希望在中的前端使用相同的分页

我为
下一页和
上一页创建了两个按钮:

<button
  type="button"
  click.delegate="getArticles(articles.previous)">prev</button>
<button
  type="button"
  click.delegate="getArticles(articles.next)">next</button>
prev
下一个
当我单击
next
时,会有一个新的
GET
请求,文章列表会更新,但我还想在URL上添加参数,以便用户可以看到他在第二页上。 那么,如何将
/?page=2
添加到路线的末尾

我知道如何使用不同的组件作为子组件添加参数,但这次我使用的是相同的组件


谢谢。

Aurelia支持开箱即用路由中的查询参数。您不需要在路由本身中定义
page
参数。所有查询参数只提供给
activate
方法的
params
参数

从“aurelia框架”导入{inject};
从“aurelia路由器”导入{Router,activationStrategy};
@注入(路由器)
出口类物品(路由器){
建造商(路由器){
this.router=路由器;
}
激活(参数){
this.page=parseInt(params.page | |“1”);
//TODO:在此处从API加载您的文章
//此项。文章=
}
//这对于告诉Aurelia路由器不要重复使用是必要的
//在页面之间导航时使用相同的视图模型
//这样每次都会调用activate方法
determineActivationStrategy(){
返回激活策略。替换;
}
//TODO:检查是否可以转到上一页和下一页等。
下一页(){
this.router.navigateToRoute('articles',{page:this.page+1});
}
上一页(){
this.router.navigateToRoute('articles',{page:this.page-1});
}
}

这非常有用。无论如何,使用
--this.page
而不是
this.page-1
可以防止出现错误。另外,在我的情况下,我不需要
ActivateStregy
,但很高兴知道,谢谢。