【问题标题】:ExtJS: Rest Proxy Post Data FailureExtJS:Rest Proxy 发布数据失败
【发布时间】:2015-04-15 20:31:23
【问题描述】:

嘿, 我通过 ExtJs Rest Proxy 发送数据遇到了问题。当我发布数据时,我得到了异常

在 Chrome 中:未捕获的 TypeError:无法读取未定义的属性“clientIdProperty”

在 Firefox 中:TypeError:clientRecords[0] 未定义

我的商店

Ext.define('Test.store.Test', {
extend: 'Ext.data.Store',

requires: [
    'Test.model.test',
    'Ext.data.proxy.Rest',
    'Ext.data.reader.Json'
],

constructor: function(cfg) {
    var me = this;
    cfg = cfg || {};
    me.callParent([Ext.apply({
        storeId: 'Test',
        model: 'Test.model.test',
        proxy: {
            type: 'rest',
            url: '/resources/php/test.php',
            reader: {
                type: 'json'
            }
        }
    }, cfg)]);
}

我的模特

Ext.define('Test.model.test', {
extend: 'Ext.data.Model',

requires: [
    'Ext.data.field.Field'
],

fields: [
    {
        name: 'Test'
    }
]

服务器有标准答案吗?

我希望有人可以帮助我 谢谢帮助

【问题讨论】:

  • 为您的阅读器分配根属性

标签: rest extjs proxy


【解决方案1】:

在您的阅读器配置中,提供一个“根”属性。

在 ext 4.x 中它会像

reader: {
        type: 'json',
        root: 'root'
    }

在 Ext 5.x 中,它将是

reader: {
        type: 'json',
        rootProperty: 'root'
    }

这是 API 文档所说的 -

rootProperty : String 包含数据的属性名称 与此阅读器所针对的模型相对应的项目 配置。对于 JSON 阅读器,它是一个属性名称(或点分隔 如果根是嵌套的,则为属性名称列表)。对于 XML 阅读器,它是一个 CSS 选择器。对于数组阅读器,根不适用,因为 data 被假定为数组的单级数组。

默认情况下,将使用数据的自然根:根 JSON 数组、根 XML 元素或数组。

这个属性的数据包值应该是一个空数组 清除数据或不显示数据。

默认为:''

例如,如果来自服务器的 JSON 响应是

{
  "data": {
    "Test": "TEST"
  },
  "someOtherField": "Some Value"
}

那么,你的 rootProperty/ root 会变成 -

rootProperty: 'data'

- 因为数据对应你的模型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多