Ext JS 6中的预加载关系一对一

时间:2015-12-22 16:16:46

标签: javascript extjs extjs6

我试图在Ext JS 6中设置一个可以预先加载引用对象数据的一对一关系。

这意味着我应该能够定义引用Foo的类Bar和类Foo,然后以{{1}的方式执行b = Ext.create(Bar, data)包含用数据初始化的b.something对象。

阅读文档here似乎很简单,除了它不起作用:

Foo

此问题也在here进行了讨论,但提议的解决方案似乎不适用于Ext JS 6。

有人在Ext JS 6或一般解决方案中有一个工作示例吗?

P.S。对于过度热心的主持人:这是关于Ext JS 4. *或Ext JS 5的任何类似问题的重复 NOT ,因为它们具有不同的关系实现,因此这些解决方案不起作用。

1 个答案:

答案 0 :(得分:1)

以下是一个例子:

Ext.define('Fiddle.model.Base', {
    extend: 'Ext.data.Model',

    schema: {
        namespace: 'Fiddle.model'
    }
});

Ext.define('Fiddle.model.User', {
    extend: 'Fiddle.model.Base',

    fields: [{
        name: 'address',
        reference: 'Address'
    }],

    proxy: {
        type: 'ajax',
        idParam: null,
        url: 'user.json'
    }
});

Ext.define('Fiddle.model.Address', {
    extend: 'Fiddle.model.Base'
});


var user = Ext.create('Fiddle.model.User', {
    id: 1
});

user.load({
    callback: function(rec) {
        console.log(rec.getAddress().getData())
    }
});

https://fiddle.sencha.com/#fiddle/12up