Я использую PagerJS в сочетании с knockoutjs для простой навигации по страницам / истории.

PagerJS поддерживает параметры, такие как #search? Text = testtext & year = 2013

Я определил такую страницу как:

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

Текст и год - две наблюдаемые в модели представления. Это работает, если я установил URL-адрес #search? Text = text text year = 2013 text - testtext, year - 2013, и отображается поиск страницы.

Но теперь я хочу простую ссылку на эту страницу с конкретными параметрами.

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

Эта строка делает ссылку на #search (без параметров), но я хочу ссылку на страницу поиска с конкретными параметрами. Есть ли способ сделать это?

2
malt 2 Фев 2013 в 15:46

2 ответа

Лучший ответ

Ваше решение работает, но ссылка очень статичная. Трудно им манипулировать или связывать параметры с наблюдаемыми.

Платформа pager.js расширила свою функциональность за последние недели, и теперь она может создавать ссылки с параметрами в расширенном и структурированном синтаксисе page-href.

См. Пример ниже или здесь, в демонстрационной версии.

<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>
2
malt 27 Фев 2013 в 09:59

Это должно быть, вероятно, то, что вы искали:

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

Я просто добавил фрагменты в URI, и это, кажется, работает нормально.

Пример на JSFiddle.

0
Klaster_1 8 Фев 2013 в 11:21