プラットフォームは Sencha Touch 2.1.1 です。次のように、フォーム パネルで datPicker を使用しています。
{
xtype: 'datepickerfield',
destroyPickerOnHide: true,
name : 'dateOfEvaluation',
label: 'Date of evaluation',
dateFormat: 'm/d/Y',
value: new Date(),
picker: {
yearFrom: 2013
}
},
私のモデルの日付型として保存されています:
{name: 'dateOfEvaluation', type: 'date'},
ストアに値がある場合、次のメソッドを介して itemTpl を介してレンダリングされます。
onSelectSiteGeneral: function(view, index, target, record, event) {
console.log('Selected a SiteGeneral from the list');
var siteGeneralForm = Ext.Viewport.down('siteGeneralForm');
if(!siteGeneralForm){
siteGeneralForm = Ext.widget('siteGeneralForm');
}
siteGeneralForm.setRecord(record);
siteGeneralForm.showBy(target);
}
これはすべてうまく機能します。
問題は、日付が保存されていないレコードにあります。日付型の localStorage では、null/空の値が 0 のように見えますが、上記のフォームでは「12/31/1969」と表示されます。この表示を現在の日付にするハンドラーを作成できることはわかっていますが、続行する方法は確かです (デフォルト値を使用することはできません: new Date()、ところで、これはデータ ストアに既にある値では機能しないためです)。フォームにレンダリングされます)。現在の日付を取得するには、n-days をゼロに追加する必要があることはわかっていますが、これをフォームで再レンダリングする方法がわかりません。
現在の日付など、より現実的な日付として表示される 0 番目の日付を取得する方法についての提案 (上記のメソッド onSelectSiteGeneral を使用すると、デフォルトの日付が機能しないように見えることを強調します)。グラジー!