Sencha Touchでデータがどのように処理されるかは、私には不明な点がいくつかあります。Sencha Touch 2 MVC - ビューとコントローラ間でデータを渡したりキャッシュする方法
1 Reststoreからコントローラアクションでデータをロードしています。
Ext.ModelManager.getModel('MyApp.model.CheckIn').load(barcode, {
synchronous: true,
success: function(model) {
that.checkInConfirm({model:model});
}
});
次に、ビューは、いくつかのフィールドの対応するセッターを呼び出すことによって更新されます。 this.getNickname().setValue(options.model.data.nickname);
これ以降のビューは、this.getMain().setActiveItem(myView);
でアクティブになります。これは、コントローラからビューにデータを渡す最も良い方法ですか?
2ビュー内でデータを操作した後、ボタンをタップすると、別のコントローラーアクションがトリガーされます。私はその後、1で読み込まれたデータを更新したいと思います。しかし、私が前にロードしたデータは失われています。サーバーから再度ロードする必要があるのですか、以前にロードされたデータを保持する別の方法がありますか?
Thx!この問題を扱っている「煎茶の道」は存在しないように思えるので、それは道のりだと思います。私のコントローラのinitメソッドでは、私はあなたがデータを格納するために示唆したように使用するモデルと呼ばれる空のオブジェクトを作成します。 – karazy
それは私もそれをやっている方法です!私は空の "モデル"を作成し、空の "ビュー"オブジェクトも作成します。 Sencha 2もこの機能を提供します: http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Controller さらに、ネストされたコントローラ用の空の "コントローラ"オブジェクトを作成することもできます。 –
また、独自のCustomControllerをExt.Controllerから派生させて、モデル、サブコントローラ、およびビューを型名で指定することもできます。 (拡張した)コンストラクターでは、指定されたすべてのモデル名を調べてインスタンス化し、それらの名前でアクセスできるように正しく割り当てることができます。このようにしてモデル、ビュー、およびサブコントローラをコントローラに簡単に取り付けることができます。コントローラの名前を指定するだけで簡単にアクセスできます。 –