javascript - 从 Kendo UI 数据集中获取数据时出错

标签 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' 

编辑:根据所选答案,我用标准 jQuery .ajax 调用替换此 kendo 数据集代码,并且效果良好。我的大脑暂时被困在剑道框架的范围内。

最佳答案

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

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

关于javascript - 从 Kendo UI 数据集中获取数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21681145/

相关文章:

javascript - ReactJS 中的 "React"

javascript - 如何从浏览器页面源中隐藏 jquery ajax 中的详细信息

asp.net-mvc - MVC Kendo Grid 超链接专栏

jquery - 如何自定义 Kendo Scheduler Week View?

javascript - 在模板中访问和迭代 Kendo UI Listview 的数组属性

javascript - ionic IBM MobileFirst 平台 8.0 sqladapter ReferenceError : WL is not defined

javascript - 在 Chrome 以外的浏览器中过滤链

c# - Kendo Grid 绑定(bind)到字符串列表

ios - 如何强制更新缓存的 Kendo UI 移动远程 View

javascript - 单击时图像以全尺寸显示