ext 4モデルがフォームパネルとどのように関連しているかを明確にしたいと思います。 モデルがあるとします。 「User」には、RESTプロキシが添付されています。私は、ユーザーのパラメータを変更したい場合はExt jsフォーム、モデル、ファイルアップロード
は、私は、フォームのフィールドの値を設定するには、フォームの
loadRecord(Ext.data.Model record) : Ext.form.Basic
メソッドを使用します。
変更後、フォームからロードされたモデルに変更を送信し、モデルの「保存」メソッドを使用して変更をサーバーに送信するために、「updateRecord」メソッドを呼び出します。これは非常にうまく動作し、Ext MVCのコンセプトに合っているようです。
質問
しかし、問題は、ユーザーのデータを変更しながら、私はMVCに準拠するべきか、場合に私が(例えばアバター)、ファイルをアップロードする必要があります。私がdocsから学んだことによると、私はフォームを使って "submit"メソッドを使用して、更新されたデータをサーバーを含めて送信する必要があります。更新されません、
- オリジナルモデル、フォームにロード:この場合 は、私はいくつかの欠点を参照してください。
- "updateRecord"などの方法でモデルを更新すると、モデルはダーティー状態のままですが、変更はすでにサーバーに送信されています。
- サーバーサイドを変更する必要がないように、モデルと同じプロキシ構成を適用する必要があります。
これは、ext-formによるファイルアップロードを実装する正しい方法ですか? MVCスタイリッシュにするために、model.saveメソッドを使用してこれを行う方法はありますか?
ほとんどのブラウザでは、選択したファイル名/パスが表示されませんが、これは可能ではありません。 –
ファイル/パスを明らかにする必要はありません。ファイルをサーバーに提出する必要があります。サーバーはそれを保存して何らかの名前(サーバー上でこのファイルの名前)を返します。後でユーザーレコードを更新するときにこの名前を使用します。 – sha
これは複雑すぎます:ファイルを送信し、ファイルを受信し、fileIdを応答し、fileIdを受け入れ、その後にのみmodel.save()を呼び出します。 1つだけをサポートする4つの新しいアクション。 –