1. La méthode Ext.data.Store.load(); Le reCount obtenu de la manière suivante est toujours 0, car la valeur est attribuée avant l'exécution de la méthode d'arrière-plan. le magasin L'enregistrement n'a pas encore obtenu de valeur.
var testStore = nouveau Ext .data.GroupingStore({
proxy : nouveau Ext.data.HttpProxy({
}),
lecteur : nouveau Ext.data.JsonReader({
root : 'hstamcx',
totalProperty : "results" ,
champs : ["id","valeur" ]
})
});
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'côté';
testStore.load ();
var reCount = testStore.getCount();
var port = nouveau Ext.Viewport({
mise en page : 'auto',
dehors pouvez 🎜> });});
2. valeur chargée, vous devez écrire le traitement ultérieur dans la fonction de rappel.
Ext.onReady(
fonction
(){
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
testStore.load({
callback : function(r, options, succès) {
var reCount = testStore.getCount();
}
});
var port = nouveau Ext.Viewport({
layout : 'auto',
frame : true,
items : [winKey]
});
});
此时可以获得reCount的值,并且 rappel : fonction (r, options, succès)函数里面使用,在callback函数里既不能给外部的其他元素赋值,也没有办法将r数据传到外面去
3、如果想在js页面Ext.Ajax.request成同步,接收数据的变量要定义在
Ext.Ajax.request外面
var
CancelMode; Ext.Ajax.request({ url :
''
, méthode : 'post',
sync:
vrai, //同步请求 succès : fonction
(réponse) {
var response = Ext.util.JSON.decode(response.responseText);
CancelMode = réponse.hstamcx[0].param_value;
);
À ce moment, vous pouvez utiliser les données obtenues par le
Demande Ext.Ajax.request à l'extérieur, telle que alert(
cancelMode
);
Exemple de code backend : cet exemple est un exemple approximatif, pas le code complet public
void getData(Réponse HttpServletResponse){ TestData td = TestDataDao.getTestdata() ;
String message =
"{name:"
+
td
.getName()+ ",id:" + td .getId()+ "}"; 🎜>out=response.getWriter ();
out.write(message); out.flush();
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!