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({
}),
reader : neu Ext.data.JsonReader({
root : 'hstamcx',
totalProperty : "results" ,
})
});
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.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);
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!