我在 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 数据中的“父”或“客户”为 null,在这种情况下,关联 getter 也应该返回 null。但相反,我得到了一个例外:
Con 不是构造函数
来自 create() 中的 ModelManager.js。发生这种情况是因为 BelongsTo 关联正在尝试使用 associatedName(即“Parent”或“Customer”)创建一个新实例。这对我来说零意义。
我应该如何处理这种缺失的关联?构造一个虚拟的新实例并不是一个好的解决方案,因为我需要能够判断相关数据是否存在。