3

Pager.js と withOnShow を使用して、ワイルドカードを使用して正しいデータを動的に取得しています。初めてページにアクセスしたときに機能しますが、新しい ID に移動すると、正しい viewModel が返されますが、バインディングは更新されません。

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 のバグですか? 私はプロジェクトの真っ最中で、これを機能させる必要があります。誰かがこれを何らかの方法で解決しましたか?

4

1 に答える 1