Heim  >  Artikel  >  Web-Frontend  >  Wie kann das Problem gelöst werden, dass ExtJs Werte nicht asynchron übertragen und zuweisen können?

Wie kann das Problem gelöst werden, dass ExtJs Werte nicht asynchron übertragen und zuweisen können?

零下一度
零下一度Original
2017-06-26 09:49:041415Durchsuche
1. Die Methode Ext.data.Store.load ist asynchron. Der auf die folgende Weise erhaltene Wert ist immer 0, da der Wert zu diesem Zeitpunkt zugewiesen wird. Der Store Der Datensatz hat noch keinen Wert erhalten.
var testStore = neu Ext .data.GroupingStore({
Proxy : neu Ext.data.HttpProxy({
URL : ''
}),
reader : neu Ext.data.JsonReader({
root : 'hstamcx',
totalProperty : "results" ,
Felder: ["id","value" ]
})
});
Ext.onReady(function(){
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
testStore.load ();
var reCount = testStore.getCount();
  var Port = neu Ext.Viewport({
layoutout: 'auto',
Frame: True ,
Elemente: [winkey]
        });
});
2. Wenn Sie den geladenen Wert verarbeiten möchten, müssen Sie die nachfolgende Verarbeitung schreiben in der Callback-Funktion.
Ext.onReady(Funktion(){
Ext.QuickTips.init();
         Ext.form.Field.prototype.msgTarget = 'side';
          testStore.load({
                callback : function(r, options, success) {
                     var reCount = testStore.getCount();
                }
         });
         var Port = neu Ext.Viewport({
                layout : 'auto',
                frame : true,
                items: [winKey]
         });
});
此时可以获得reCount的值,并且 Rückruf: Funktion(r, Optionen, Erfolg)调函数里面使用,在Rückruf函数里既不能给外部的其他元素赋值,也没有办法将r数据传到外面去
 3、如果想在js页面向 后台 发送 请求 , 并 外面 外面 使用 后台 返回 数据 值 , 可以 使用 ext.ajax
Ext.Ajax.request外面
         var
cancelMode;
         Ext.Ajax.request({                url:
'
'
,
                Methode: 'post',
                sync:
wahr
, //同步请求                Erfolg: Funktion
(Antwort) {
 var response = Ext.util.JSON.decode(response.responseText);
Zu diesem Zeitpunkt können Sie die vom Ext.Ajax.request-Anfrage außerhalb, z. B. Alert(
cancelMode
);
Backend-Codebeispiel: Dieses Beispiel ist ein grobes Beispiel, nicht der vollständige Code
public void
getData(
HttpServletResponse Response){ TestData td = TestDataDao.getTestdata() ; String message = "{name:" +
td
.getName()
+ ",id:"
+ td .getId()+ "}";                                                             🎜>out=respons e.getWriter(); out.write(message);
out.flush(); }

Das obige ist der detaillierte Inhalt vonWie kann das Problem gelöst werden, dass ExtJs Werte nicht asynchron übertragen und zuweisen können?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn