我在淘汰赛中有以下 html 绑定
<div data-bind="with: talkData">
<div data-bind="foreach: Talks">
<p data-bind="text: Title"></p>
</div>
</div>
<p>
<button class="btn btn-success previous"
data-bind="click: $root.PageBack, disable: $root.page() == 1">Prev</button>
<button class="btn btn-success next"
data-bind="click: $root.PageNext, disable: $root.page() == $root.talkData().TotalPageCount">Next</button>
</p>
使用以下模型:
$(function() {
function TalksViewModel() {
var self = this;
self.page = ko.observable(1);
self.records = ko.observable(1);
self.totalPages = ko.observable(1);
self.talkData = ko.observable();
self.IsPrevEnabled = isPrevEnabled;
function pageBack(item) {
self.page(self.page() - 1);
loadDataFromServer();
}
self.PageBack = pageBack;
function pageNext(item) {
console.log("page next");
self.page(self.page() + 1);
loadDataFromServer();
}
self.PageNext = pageNext;
function loadDataFromServer() {
var url = '/Talks/GetPagedTalks';
self.talkData(null);
$.get(url, { page: self.page() }, self.talkData);
}
// Initial page
loadDataFromServer();
}
ko.applyBindings(new TalksViewModel());
});
从“GetPagedTalks”调用返回的 JSON 是:
Talks: [{Title:Philippians 1:12-26,…}, {Title:Philippians 1:1-11,…}, {Title:Devoted Lives: ,…}]
0: {Title:Philippians 1:12-26,…}
1: {Title:Philippians 1:1-11,…}
2: {Title:Devoted Lives: ,…}
TotalPageCount: 59
TotalRowCount: 177
下一个和上一个按钮有效,但我真的很难知道如何从 GET 调用返回的数据中设置总页数。
该行:禁用:$root.page() == $root.talkData().TotalPageCount
根本不工作。我假设 TotalPageCount 将是talkData 的一部分。
任何帮助表示赞赏。
谢谢。