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