EXT JS 5:为什么我不能获得引用类型的模型对象
EXT JS 5 : why can I not get the model object of my reference type
我有以下模型:
Ext.define('MyApp.model.Container', {
extend : 'Ext.data.model',
requires : ['MyApp.model.Item','MyApp.model.User'],
items : [
{
name : 'user',
mapping : 'user',
reference : 'MyApp.model.User',
unique : true
},
{
name : 'item',
mapping : 'item',
reference : 'MyApp.model.Item'
}
],
//******************************
//* GETTERS / SETTERS *
//******************************
getUser : function() {
var me = this;
return me.get('user');
},
getItem: function() {
var me = this;
return me.get('item');
}
});
当我得到用户或项目时,我得到的不是用户模型或项目模型,而是对象。如何获取Item模型或User模型而不是Object。
编辑1:
我找到了一个解决方案,但我不知道它是否是一个好的解决方案:
Ext.define('MyApp.model.Container', {
[...]
//******************************
//* GETTERS / SETTERS *
//******************************
getUser : function() {
var me = this;
return new MyApp.model.User(me.get('user'));
},
getItem: function() {
var me = this;
return new MyApp.model.Item(me.get('item'));
}
});
编辑2:
在我的第一个例子中,当我加载我的商店时,当我得到User时,我会得到这个,例如:
store
=> getAt(0)
=> data
=> item [...]
=> utilisateur
=> id : '1'
=> name : 'john doe'
=> profil : 'admin'
我想要:
store
=> getAt(0)
=> data
=> item [...]
=> utilisateur
=> $className : "MyApp.model.User"
=> id : '1'
=> name : 'john doe'
=> profil : 'admin'
=> (others properties of model object)
=> (getters and setters functions)
编辑3:
对不起。。。我的问题是,我在字段声明中使用项,而不是字段。。。。。。。。。。。。。。。。
Ext.define('MyApp.model.Container', {
extend : 'Ext.data.model',
requires : ['MyApp.model.Item','MyApp.model.User'],
fields : [
{
name : 'user',
mapping : 'user',
reference : 'MyApp.model.User',
unique : true
},
{
name : 'item',
mapping : 'item',
reference : 'MyApp.model.Item'
}
],
//******************************
//* GETTERS / SETTERS *
//******************************
getUser : function() {
var me = this;
var user = me.user;
if(user) {
return user;
} else {
return null;
}
},
getItem: function() {
var me = this;
var item = me.item;
if(item) {
return item;
} else {
return null;
}
}
});
谨致问候。
引用字段已经在存储模型的文件夹中查找,因此您只需要修复引用配置。
items : [
{
name : 'user',
mapping : 'user',
reference : 'User', <---
unique : true
},
{
name : 'item',
mapping : 'item',
reference : 'Item' <--
}
]
您也不需要定义函数来获取模型,因为Ext将自动添加getUser()和getItem()。
要得到答案,请记住配置的名称,然后查看第三个Edit。
相关文章:
- 似乎行为与引用类型不同的引用类型
- 值和引用类型
- 在 Knockout.js 中选择更改时引用当前模型项调用函数
- 执行 Backbone where 和 findWhere 按值或引用返回模型
- Javascript - 原始与引用类型
- mongoDB:在具有父引用的模型树结构中查找缺失的文档
- 为什么像这样向 JavaScript 引用类型添加方法不起作用
- 将嵌套文档集合转换为具有父引用的模型树结构
- 变量存储函数作为基元类型或引用类型
- 如何在Javascript中使用共享的、不可变的引用类型来跟踪更改
- EXT JS 5:为什么我不能获得引用类型的模型对象
- Array.prototype.引用类型上的恶意行为
- 作为条件和引用类型的函数
- 正确检测抽象对象/引用类型的方法
- 引用类型值和初始化
- 如何使用Sails 0.10.x在一对多关系中引用关联模型
- 字符串:javascript中的基本类型变量或引用类型变量
- javascript中的值类型引用类型对象
- 在JQuery中,将一个对象数组复制到另一个数组是它的引用类型
- JavaScript引用类型对象和普通对象的区别