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'
编辑:基于选定的答案,我用标准jQuery .ajax调用替换了这个kendo数据集代码,并且效果很好。我的大脑暂时陷入了剑道框架的限制。
最佳答案
dataSource用于从服务器获取对象集合。从服务器返回的项目不是集合时,抛出此异常。取而代之的是,它是一个具有实际容纳数组的字段的对象。
如果要使用的数据集(数组)是返回对象中的字段之一,则应使用dataSource.schema.data配置指定该字段,以便dataSource可以从响应中了解在哪个字段中搜索集合。
关于javascript - 从Kendo UI数据集中获取数据时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21681145/