PagerJS page-href链接到带有params的页面

时间:2013-02-02 11:46:16

标签: javascript knockout.js navigation single-page-application

我将PagerJS与knockoutjs结合使用,以启用简单的分页/历史记录网址导航。

PagerJS支持诸如#search?text = testtext& year = 2013

之类的参数

我定义了这样一个页面:

<div data-bind="page: {id: 'search', params: ['text', 'year']}">
</div

text和year是视图模型中的两个可观察对象。它有效,如果我将网址设置为#search?text = testtext&amp; year = 2013 text是testtext,year是2013,并显示页面搜索。

但是,现在我想要一个带有特定参数的简单链接到这个页面。

<a data-bind="page-href: 'search'"></a>

这一行链接到#search(没有params),但我想要一个指向具有特定参数的搜索页面的链接。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:2)

您的解决方案有效,但链接非常静态。很难操纵它或将params与观察者连接起来。

pager.js框架在过去几周内扩展了它的功能,现在它能够在扩展和结构化的page-href语法中与params建立链接。

请参阅下面的示例或Demo

中的示例
<a class="btn" data-bind="page-href: {path: 'user', params: {first: 'Philip', last: 'Fry'}}">Send parameter to page</a>

<div data-bind="page: {id: 'user', params: ['first','last']}" class="well-small">
  <div>
    <span>First name:</span>
    <span data-bind="text: first"></span>
  </div>
<div>
  <span>Last name:</span>
  <span data-bind="text: last"></span>
</div>

答案 1 :(得分:0)

这应该是你想要的:

<a data-bind="page-href: 'search?text=foo'&year=2020"></a>

我只是在URI中添加了片段,它似乎工作正常。

Example at JSFiddle