Pluralsight で SPA を構築するための John Papa の素晴らしいビデオを見てきました。
現在、セッションページのページネーションを実装しようとしていますが、これが正しい方法であるかどうかわかりません。誰かが同様のことを試みた場合、フィードバックをいただければ幸いです。
これが私がやったことです。
セッション.html
<section>
<footer>
<ul class="pager">
<li>
<button class="btn btn-info btn-small" data-bind="click: previous, enable:canPrev"><i class="icon-angle-left"></i>Previous</button>
</li>
<li>
<button class="btn btn-info btn-small" data-bind="click: next, enable: canPrev">Next<i class="icon-angle-right"></i></button>
</li>
</ul>
</footer>
</section>
セッション.js
var currentPage = ko.observable(),
activate = function () {
currentPage(0);
return datacontext.getSessionPartials(sessions);
},
previous = function () {
currentPage(currentPage() - 1);
return datacontext.getSessionPartials(sessions, true, currentPage());
},
canPrev = ko.computed(function () {
return currentPage() > 0;
}),
canNext = ko.computed(function () {
//return currentPage > 0;
}),
next = function () {
currentPage(currentPage() +1);
return datacontext.getSessionPartials(sessions, true, currentPage());
},
var vm = {
//existing stuff plus the following:
previous: previous,
next: next,
currentPage: currentPage,
canPrev: canPrev,
canNext: canNext,
};
datacontext.js
var query = EntityQuery.from('Sessions')
.select('id, title, code, speakerId, trackId, timeSlotId, roomId, level, tags')
.skip(currentPage * 5).take(5)
.orderBy('timeSlotId, level, speaker.firstName')
.inlineCount(true);
inlineCount の結果をセッションの viewModel に追加する方法がわからないため、canNext を除いて、これは機能します。最善の方法は何ですか?