Top Support Tips
こんにちは、ゼノフィnakamuraです。
Ext JS 5 内での ExtraParams
by Greg Barry
Ext JS 4 では、ユーザーは次の様にコネクションラインに直接 extraParams を追加できました。
Ext.Ajax.extraParams = { foo: "bar" }; |
Ext JS 5 でのデータパッケージの変更により、この方法はもう使えません。Ext.data.Connection が提供する setExtraParams() と getExtraParams() メソッドを使わなければいけません。
次の様にします。
Ext.Ajax.setExtraParams({ foo: "bar" }); |
これらのメソッドに関して詳しくは次のリソースを参照してください。
Ext.data.Connection
これらが実際に機能しているのを確認するには、この Fiddle’s の ネットワークタブ内の “List” をご参照ください。
Ext JS 4 での ダイナミックフィールドとグリッドカラム
by Seth Lemmons
Ext JS 5 のデータパッケージの変更により、可変データは扱いやすくなりました。しかし、Ext JS 4 を使用しているのであれば、あまり知られていないフレームワークの一部分を使用することで、同じような体験を得ることができます。
開発者はサーバーからアプリケーションに返されるデータセットフィールドを常にコントロールできるわけではありません。複数のソースからデータが集められる環境で作業しているならば、これは何度も解決しなければいけない問題かもしれません。データのシグネチャは頻繁に、データの所有者も知ることなく変更されます。ユーザーは静的にフィールドをモデルやストアのコンフィグ (もしくはコラムやグリッド上に )にセットします。しかし、metaData キーを返す metachange イベントを利用すれば、よりデータを柔軟なものにすることができます。
注: metachange イベントは いまのところ JSON リーダーでしか発火されません。
サーバーのレスポンスにキー “metaData” が含まれるのであれば、リーダーの metaProperty コンフィグを使用すれば設定は可能であり、metaData レスポンスからいくつかのアイテムが使えます。渡されるデータレコードのルートもここで定義付けすることもできます。ストア内のレコードに使用されたフィールドもです。レコードのオブジェクトが metaData オブジェクトに渡された場合、フィールドはリーダーによって自動的にストアやモデルに適応されます。
レスポンスに関連するその他の情報はレスポンス内でパスされることもできます。例えば、関連したストアの配列されたコラムコンフィグはパスすることができ、ストアの metachange イベントを使うことでダイナミックに適応させることが可能です。
metaData がレスポンス内でパスされる場合、metachange イベントが発火し、ハンドラーが戻されたデータを取得でき、取り込むことができます。
var store = Ext.create('Ext.data.Store', { // ... listeners: { 'metachange': function(store, meta) { myGrid.reconfigure(store, meta.columns); } } }); |
理想を言えば、フィールドやカラムを再構築する必要がなければ、ロード毎にグリッドを再構成したくはありません。そのため、フィールドでカラムに変化がある場合だけ、metaData をレスポンス内でパスするのがベストでしょう。
metachange イベントと metaData コンフィグに関して詳しく知りたい方は以下のリソースをご参照下さい。
