Я использую Pager.js и withOnShow для динамического получения правильных данных с помощью подстановочного знака. Он работает при первом посещении страницы, но если вы перейдете к новому идентификатору, вернется правильный viewModel, но привязки не будут обновлены.Pagerjs не обновляется с помощью OnShow после первого посещения
Html:
<div data-bind="page: {id: 'start'}">
<a href="" data-bind="page-href: '/11'">id 11</a>
<a href="" data-bind="page-href: '/12'">id 12</a>
</div>
<div data-bind="page: {id: '?', withOnShow: showView}">
<h1 data-bind="text:id"></h1>
<a href="" data-bind="page-href: '/11'">id 11</a>
<a href="" data-bind="page-href: '/12'">id 12</a>
</div>
JS
vm = ko.mapping.fromJS({test: 1});
vm.showView = function(callback, page) {
console.log(page.currentId);
vm = ko.mapping.fromJS({id: page.currentId});
callback(vm);
};
pager.useHTML5history = true;
pager.Href5.history = History;
pager.extendWithPage(vm);
ko.applyBindings(vm);
pager.startHistoryJs();
jsFiddle: http://jsfiddle.net/xU4Uu/
Попробуйте навигации по одной из ссылок, а затем использовать новые ссылки, чтобы перейти к другому идентификатору. Журналы консоли отображают верный идентификатор, но h1 не обновляется.
Я использую это неправильно или это ошибка в pager.js? Я нахожусь в центре проекта, и мне действительно нужно заставить это работать. Кто-нибудь решил это как-то?
Жаль, что я мог бы помочь, но не совсем уверен, что делает Pager.js. +1 надеюсь, что кто-то еще найдет ваш вопрос. –
Это может быть ошибка pager.js ... потому что если вы измените версию KO на 2.2.1, она будет работать: http://jsfiddle.net/j8BTC/. Кстати, есть более новая версия pager.js 1.0.1: https://github.com/finnsson/pagerjs#101, где они утверждают, что исправили эту проблему несовместимости ... – nemesv