我已向Sencha论坛发布了同样的问题:http://www.sencha.com/forum/showthread.php?259313-Dealing-with-nulls-in-nested-data&p=949429#post949429
我无法理解关联应该如何工作(在ExtJS 4.1.1a中)。 考虑以下模型:
Ext.define('FM.model.Project', {
extend: 'Ext.data.Model',
requires: ['FM.model.Company'],
fields: [
'id',
'customer_id',
'parent_id',
'name',
'code',
'supervisor_id',
'start_date',
'end_date',
'budgeted_hours',
'budgeted_sales',
'budgeted_working_cost',
'budgeted_material_cost',
'info'
],
associations: [
{type: 'belongsTo', model: 'FM.model.Company', associatedName: 'Customer'},
{type: 'belongsTo', model: 'FM.model.Project', associatedName: 'Parent'},
]
});
有时,JSON数据中的“父”或“客户”为空,在这种情况下,关联getter也应返回null。但相反,我得到一个例外:
Con不是构造函数
来自create()中的ModelManager.js。发生这种情况是因为BelongsTo关联尝试使用associatedName(“父”或“客户”)创建新实例。这对我来说毫无意义。
我应该如何处理这些缺失的关联?构建虚拟新实例不是一个好的解决方案,因为我需要能够判断相关数据是否存在。
答案 0 :(得分:1)
你是对的,它应该创建一个返回getter
的{{1}}函数。
这是一个解决方法:
设置null
关系的instanceName
,并在调用belongsTo
之前检查它是否存在:
getter