从Kendo UI数据集获取数据时出错

时间:2014-02-10 15:26:10

标签: javascript kendo-ui kendo-mobile

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调用,并且运行正常。我的大脑暂时陷入了剑道框架的范围内。

1 个答案:

答案 0 :(得分:2)

dataSource用于从服务器获取对象集合。当从服务器返回的项不是集合时,抛出此异常。相反,它是一个具有实际保存数组的字段的对象。

如果要使用的数据集(数组)是返回对象中的某个字段,则应使用dataSource.schema.data配置指定该字段,以便dataSource可以了解响应中的哪个字段搜索该系列。