サーバーがデータを返した直後に、タイムスタンプをカスタマイズされた日付形式に変換したいと考えています。Ext.data.field で「変換」を使用しようとしました: http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Field-cfg-convert
しかし、私はそれを正しくすることはできません。これが私のモデルです。
Ext.define('AM.model.Comment',{
extend: 'Ext.data.Model',
fields: [
{ name: 'createdTime', type: 'date', convert:function(v,record){record.parseDate(v,record);}}, // datetime
],
proxy: {
type: 'rest',
url:'../comments',
writer:{
type:'json'
},
reader: {
type: 'json'
}
},
parseDate:function(v,record){
console.log(v); //show 1347465600000
console.log(Ext.Date.format(new Date(v), 'Y-m-d')); //show 2012-09-13
return Ext.Date.format(new Date(v), 'Y-m-d');
}
});
読み込み後、firebug を確認したところ、「createdTime」フィールドが「未定義」であることがわかりました。誰かが私の間違いを指摘できますか? ありがとう!
「変換」を使用せずにそれを達成できExt.Date.format(new Date(v), 'Y-m-d')
ます。他のコンポーネントで使用するだけです。しかし、モデルでそれを行う方が良いと思います。その後、すべてのコンポーネントは、クエリを実行するときに常に正しい日付形式を読み取ることができます。