1. Ext.data.Store.load(); メソッドは非同期です。 バックグラウンドメソッドが実行される前に値が割り当てられ、ストアのレコードが割り当てられていないため、次の方法で取得される reCount は常に 0 になります。まだ値が得られていない。
var testStore = new Ext.data.GroupingStore({
) プロキシ: new Ext.data.HttpProxy({
data.JsonReader({ root: 'hstamcx'
、
totalProperty: "results"、
フィールド: ["id " ,"値"
});
) Ext.QuickTips.init();
Ext.form.Field.prototype .msgtarget =
'Side'
; テストStore.load (); var recount = test
store.getCount ();
var port =
new
Ext.Viewport({
) ) フレームアイテム: [winKey]
});
});2. 読み込んだ値を処理したい場合は、その後の処理をコールバック関数に記述する必要があります。 Ext.onReady(function
(){
) Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side' コールバック: function(r, options, success) {
:
内線。ビューポート({
送信済みの色の反射 -- with --with-layout as as with 、
アイテム: [winKey]
}) ;
});
このときreCountの値が取得でき、callback:function(r,options,success)のrはストアロードで見つかったデータになります。 しかし、まだ問題があります。rのデータ値はコールバック関数でのみ使用でき、コールバック関数では他の外部要素に値を割り当てる方法がなく、転送する方法もありません。 r data to the external 3. JS ページのバックグラウンドにリクエストを送信し、バックグラウンドから返されたデータ値を外部で使用したい場合は、
Ext.Ajax.request と
を使用できます。リクエストメソッドを同期に設定し、データを受信するための変数を
Ext.Ajax.request
url:
'',
メソッドで定義する必要があります:
'ポスト'、
成功:function
(response){
celMode = response.hstamcx[0].param_value; );このとき、Ext.Ajax.requestリクエストで取得したデータを外部で利用することもできます(alert(
)
キャンセルモード );
バックエンドコード例: この例は大まかな例であり、完全なコードではありません
public
void getData(HttpServletResponse response
)
{
TestData td = TestDataDao.getTestdata(); 文字列メッセージ = "{name:" + td .getName()+ ",id:"
+ td.getId( )+
"}";
以上がExtJsが非同期で値を転送または代入できない問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。