我使用Pager.js和OnShow通過通配符動態獲取正確的數據。 它在您首次訪問頁面時有效,但如果您導航到新的ID,則會返回正確的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/
嘗試導航到其中一個鏈接,然後使用新的鏈接導航到其它ID。控制檯日誌顯示返回的正確ID,但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