Extjs4中Model的字段不能包含点、破折号等特殊字符
The fields of Model in Extjs4 can not contains some special characters, such as dot, dash
我必须维护一个由 extjs4.2 开发的遗留项目。但我发现网格不能使用带有动态字段的商店。并且该字段包含导致错误的字符破折号和减号。请看一下下面的代码片段并关注网格存储的字段。它将抛出语法错误 'Invalid left-hand in assignment'.
Ext.create('Ext.grid.Panel',{
title:'mygrid',
store: Ext.create('Ext.data.Store'{
fields:['group','alfa=-2.0','alfa=0','alf=2.0'],
data:[
{'group':'beta', 'alfa=-2.0':1.3, 'alfa=0':1.4, 'alfa=2.0':1.5 },
{'group':'beta', 'alfa=-2.0':1.3, 'alfa=0':1.4, 'alfa=2.0':1.5 },
]
}),
columns:[
{'dataIndex':'group','header':'group'},
{'dataIndex':'alfa=-2.0','header':'alfa=-2.0'},
{'dataIndex':'alfa=0','header':'alfa=0'},
{'dataIndex':'alfa=2.0','header':'alfa=2.0'}
]
});
您的示例包含语法错误。 Ext.create('Ext.data.Store'{
第一个参数后缺少 ,
。
在后台,Ext 正在调用 recordDataExtractorTemplate
将尝试使用点表示法访问记录值。这导致代码 value = source.alfa=-2 && source.alfa=-2.0;
显然在语法上不正确。
以下任何解决方案都可能有效。看你选择哪一个。
- 如果这些字段未在应用中广泛使用,则在可能的情况下更改代码中的字段名称的最快解决方案。
- 您可以检查Ext 的更高版本是否修复了这个问题。然而,迁移可能会很痛苦。
- 您可以创建
Ext.data.reader.Reader
的覆盖并修补失败的函数。
我必须维护一个由 extjs4.2 开发的遗留项目。但我发现网格不能使用带有动态字段的商店。并且该字段包含导致错误的字符破折号和减号。请看一下下面的代码片段并关注网格存储的字段。它将抛出语法错误 'Invalid left-hand in assignment'.
Ext.create('Ext.grid.Panel',{
title:'mygrid',
store: Ext.create('Ext.data.Store'{
fields:['group','alfa=-2.0','alfa=0','alf=2.0'],
data:[
{'group':'beta', 'alfa=-2.0':1.3, 'alfa=0':1.4, 'alfa=2.0':1.5 },
{'group':'beta', 'alfa=-2.0':1.3, 'alfa=0':1.4, 'alfa=2.0':1.5 },
]
}),
columns:[
{'dataIndex':'group','header':'group'},
{'dataIndex':'alfa=-2.0','header':'alfa=-2.0'},
{'dataIndex':'alfa=0','header':'alfa=0'},
{'dataIndex':'alfa=2.0','header':'alfa=2.0'}
]
});
您的示例包含语法错误。 Ext.create('Ext.data.Store'{
第一个参数后缺少 ,
。
在后台,Ext 正在调用 recordDataExtractorTemplate
将尝试使用点表示法访问记录值。这导致代码 value = source.alfa=-2 && source.alfa=-2.0;
显然在语法上不正确。
以下任何解决方案都可能有效。看你选择哪一个。
- 如果这些字段未在应用中广泛使用,则在可能的情况下更改代码中的字段名称的最快解决方案。
- 您可以检查Ext 的更高版本是否修复了这个问题。然而,迁移可能会很痛苦。
- 您可以创建
Ext.data.reader.Reader
的覆盖并修补失败的函数。