我有以下代码,我正在尝试获取返回记录的计数,而不得不发出第二个fetch()命令:
dsOffers = new kendo.data.DataSource({
transport: {
read: {
url: PRODUCTAPI,
data: getOfferData()
}
},
serverPaging: true,
pageSize: 50,
schema: {
data: "results",
total: "count",
model: { id: "id" }
}
})
.bind("error", namespace.dataSource_error);
dsOffers.total(); // returns 0
// if I use this, my API is hit twice
dsOffers.fetch(function() {
console.log(dsOffers.total()); // returns 3
});
答案 0 :(得分:1)
问题是加载数据需要时间(它在背景/并行中异步发生)。如果您在初始化后立即打印它,实际上没有可用的数据。
这是正确的行为。
如果您不想进行第二次抓取,则应在dataBound
事件中进行打印。