2011-07-19 8 views
1

私はSencha touchでフォームを使用していましたが、データを取得することは苦労する可能性があります。 localStorageの値に基づいてフォームにデータをロードし、localStorageが変更されたときにそのデータを更新したい。Sencha Touchでのフォームデータアクセス

ページの作成時に、最初のlocalStorage値を使用してフォームが作成されますが、値がlocalStorageで更新され、ページが再び表示されると、データは更新されません。私は、アクティブなハンドラを使用してページビューで再び値を読み込むことができることを知っています。私の問題はフォームを更新することです。以前に作成したフォームを動的に更新する唯一の方法は、レコード、モデル、およびストアを作成することです。これは、レコードデータの1つのインスタンスをフォームにロードするだけの上にあるようです。このメソッドは、元の変数自体を使用するのではなく、使用する新しい変数に取り込むために、単一の変数をデータベースに挿入する機能を持つように思えます。

私はデータを表示しているだけなので、ユーザーはそれを変更しないので、XTemplateの使用を検討しましたが、ストアからロードする必要があるようです。

+0

localStorageの問題についてはわかりませんが、XTemplatesはストアを必要としません。 DataViewをDataViewの各アイテムをレンダリングするためにXTemplateを使用するストアにバインドすることはできますが、Panel(またはContainer)にXTemplateを( 'tpl' configを使用して)与え、 'data' configオプションを使用するか、update()メソッドへの引数として渡すと、テンプレートが処理され、Panelで出力がレンダリングされます。 – Stuart

答えて

2

setValues()メソッドは値を更新できません。

myForm = new Ext.form.FormPanel({ 
    fullscreen: true, 
    items: [{ 
     xtype: 'textfield', 
     label: 'text1', 
     name: 'text1' 
    },{ 
     xtype: 'textfield', 
     label: 'text2', 
     name: 'text2' 
    }] 
}); 
myForm.setValues({text1: "1", text2: "2"}); 

ますので、OnActivateイベントmyForm.setValues(eval(localStorage.formValues))限り、あなたはのlocalStorageに有効なJSONオブジェクトを格納して含めることができます。