dsDetails = new kendo.data.DataSource({
transport: {
read: {
url: PRODUCTDETAILAPI,
dataType: "json",
data: { "site_key": SITEKEY, "id": id }
}
}
});
dsDetails.fetch(function() {
var myData = dsDetails.data();
console.log(myData);
// bind stuff here
});
API调用返回以下数据(所以我知道它正在运行):
{
"main_category": "Gifts",
"expires_on": null,
"html_address": "678 Sterling Drive\u003Cbr/\u003ESuite 102\u003Cbr/\u003ESanford FL 32771",
"address": "678 Sterling Drive Suite 102, Sanford Florida 32771",
"status": "Visible",
"rating": 5, "sub_category": "Gift Baskets",
"quantity": 92, "categories": ["Gifts: Gift Baskets"], "title": "Luggage Duffel",
"price": 12210, "images": [], "short_address": "Sanford FL",
"short_title": "Luggage Duffel",
"posted_at": "2011/09/23",
"category": "Gifts: Gift Baskets",
"id": "product_listing_88",
"price_note": "",
"description": "Black, 60 in long",
"seller": "Morning Star Media Group"
}
当我运行此代码时,我收到以下错误:
Uncaught TypeError: Object #<Object> has no method 'slice'
编辑:根据所选答案,我将此kendo数据集代码替换为标准的jQuery .ajax调用,并且运行正常。我的大脑暂时陷入了剑道框架的范围内。
答案 0 :(得分:2)
dataSource用于从服务器获取对象集合。当从服务器返回的项不是集合时,抛出此异常。相反,它是一个具有实际保存数组的字段的对象。
如果要使用的数据集(数组)是返回对象中的某个字段,则应使用dataSource.schema.data配置指定该字段,以便dataSource可以了解响应中的哪个字段搜索该系列。