与 Ext JS 6 中的预加载一对一关系
One-to-one with preload relations in Ext JS 6
我正在尝试在 Ext JS 6 中建立一个有效的一对一关系,它可以预加载引用对象的数据。
这意味着我应该能够定义一个 class Foo
和一个 class Bar
引用 Foo
然后做 b = Ext.create(Bar, data)
这样 b.something
包含一个用数据初始化的 Foo
对象。
阅读文档 here 看起来很简单,只是它不起作用:
data = {'address': {'address': 'foo', 'city': 'foo', 'state': 'foo'}}
u = Ext.create('User', data)
u.getAddress()
none
也讨论了这个问题 here 但建议的解决方案似乎在 Ext JS 6 中不起作用。
有人有 Ext JS 6 中的工作示例或通用解决方案吗?
P.S。对于过分热心的版主:这是 NOT 任何关于 Ext JS 4.* 或 Ext JS 5 的类似问题的副本,因为它们有不同的关系实现,因此这些解决方案将不起作用.
这是一个例子:
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())
}
});
我正在尝试在 Ext JS 6 中建立一个有效的一对一关系,它可以预加载引用对象的数据。
这意味着我应该能够定义一个 class Foo
和一个 class Bar
引用 Foo
然后做 b = Ext.create(Bar, data)
这样 b.something
包含一个用数据初始化的 Foo
对象。
阅读文档 here 看起来很简单,只是它不起作用:
data = {'address': {'address': 'foo', 'city': 'foo', 'state': 'foo'}}
u = Ext.create('User', data)
u.getAddress()
none
也讨论了这个问题 here 但建议的解决方案似乎在 Ext JS 6 中不起作用。
有人有 Ext JS 6 中的工作示例或通用解决方案吗?
P.S。对于过分热心的版主:这是 NOT 任何关于 Ext JS 4.* 或 Ext JS 5 的类似问题的副本,因为它们有不同的关系实现,因此这些解决方案将不起作用.
这是一个例子:
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())
}
});