Im正在制作Sencha Touch PhoneGap-app。 我试图在Sencha Touch 2.1中添加一个带有转换功能的模型到模型中 这个转换函数应该找到单个字母并替换它们(“convFAF”)。现场转换功能在Sencha Touch模型中失败
我不明白为什么它失败。
使用适当的功能,列出使用模型的(列出商店的)列表显示空白。 Xcode不会向控制台输出任何错误消息。
我的模型:
Ext.define('Labblistan.model.LabItem', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'Group', type: 'String'},
{name: 'Groupname', type: 'String'},
{name: 'Analysis', type: 'String'},
{name: 'Sex', type: 'String'},
{name: 'AgeFrom', type: 'String'},
{name: 'AgeTo', type: 'String'},
{name: 'LowLimit', type: 'String'},
{name: 'UpperLimit', type: 'String'},
{name: 'Unit', type: 'String'},
{name: 'Comment', type: 'String'},
{name: 'SortOrder', type: 'String'},
{
name : 'formattedAnalysis',
type : 'string',
convert : function(v, record) {
var unformattedAnalysis = record.get('Analysis');
if (unformattedAnalysis.indexOf("-") != -1) {
return unformattedAnalysis.substring(unformattedAnalysis.indexOf("-")).substr(1).toUpperCase();
} else {
return unformattedAnalysis.toUpperCase();
}
}},
{name: 'formattedAgeFrom', convert: convertAgeFrom},
]
},
});
function convertAgeFrom(v, record) {
var unformattedAgeFrom = record.get('AgeFrom');
var formattedAgeFrom = unformattedAgeFrom.replace('d', ' d.').replace('y', ' år').replace('m', ' mån.').replace('w', ' v.');
return formattedAgeFrom;
}
正如你可以看到我已经有一个转换功能会( “formattedAnalysis” - 这工作正常)。
我试过在字段定义里面的函数(按照formattedAnalysis),但是有相同的结果。 我也尝试将AgeFrom类型设置为Auto(以及自动和字符串formattedAgeFrom
最奇怪的部分是,如果我将record.get('AgeFrom');切换到'分析',该函数工作。也似乎与Group,Unit和SortOrder一起使用,但与AgeFrom或AgeTo(我现在感兴趣转换的两个字段)不兼容。
数据从XML文件加载,其中的副本可以找到here
我以为加入这个转换很容易,但是我在这里完全没有任何帮助或想法,深表赞同。
不是确定它是否有帮助,但在模型中使用小型'string'作为类型。顺便说一句你得到的错误是什么? – ThinkFloyd 2013-03-12 11:09:59
将它更改为小写不起作用。不幸的是,我在控制台中没有收到任何错误。我正在使用phonegap,因此控制台错误消息通过xcode,不知道这是否会影响控制台输出。 – Hessius 2013-03-12 14:56:14
解决了它,谢谢你的小“错误是什么”,哈哈将在下面发布解决方案。 – Hessius 2013-03-12 15:16:43