在ExtJs中加载商店后,如何从函数返回值?
问题描述:
我有一个存储负载的函数。那就是:在ExtJs中加载商店后,如何从函数返回值?
function PdCtrl_Posicionamiento_RegistrarPosicion(numeroPrograma, tren, fechaTren, ramal, secuenciaEstacion, kilometraje, hora, minuto, tipoOrigen, eliminaDependencia) {
storePdCtrl_Posicionamiento_RegistrarPosicion.load({
params: {
numeroPrograma: numeroPrograma,
tren: tren,
fechaTren: fechaTren,
ramal: ramal,
secuenciaEstacion: secuenciaEstacion,
kilometraje: kilometraje,
hora: hora + ":" + minuto,
tipoOrigen: tipoOrigen,
eliminaDependencia: eliminaDependencia,
usuario: NOMBRE
},
callback: function() {
var estado = new Array();
var err = storePdCtrl_Posicionamiento_RegistrarPosicion.getAt(0).get('ESTADO');
var mensaje = storePdCtrl_Posicionamiento_RegistrarPosicion.getAt(0).get('MENSAJE');
estado.push(err);
estado.push(mensaje);
return estado;
},
});
}
而且我需要在其他地方返回的值(阵列)(在函数调用),但是对于ExtJS的工作方式(异步),我可以”得到数组。以下行不起作用:
var vl_estado = PdCtrl_Posicionamiento_RegistrarPosicion(numeroPrograma, tren, fechaTren, ramal, secuenciaEstacion, kilometraje, hora, minuto, tipoOrigen, eliminaDependencia);
console.debug("estado:" + vl_estado);
当我调试变量“estado”我没有任何价值。也许我不会以很好的方式解释这种情况。对不起,谢谢。
答
你试过:
callback: function (records) {
if (records.length > 0) {
var estado = new Array();
var err = records[0].get('ESTADO');
var mensaje = records[0].get('MENSAJE');
estado.push(err);
estado.push(mensaje);
return estado;
} else {
return null;
},
答
你在错误的方式思考。你只需在变量的回调方法结束时调用一个方法即可。
就像这样;
var doSomeThingWithVariable = function(passedVariable){
alert(passedVariable);
};
storePdCtrl_Posicionamiento_RegistrarPosicion.load({
params: {
numeroPrograma: numeroPrograma,
tren: tren,
fechaTren: fechaTren,
ramal: ramal,
secuenciaEstacion: secuenciaEstacion,
kilometraje: kilometraje,
hora: hora + ":" + minuto,
tipoOrigen: tipoOrigen,
eliminaDependencia: eliminaDependencia,
usuario: NOMBRE
},
callback: function() {
var estado = new Array();
var err = storePdCtrl_Posicionamiento_RegistrarPosicion.getAt(0).get('ESTADO');
var mensaje = storePdCtrl_Posicionamiento_RegistrarPosicion.getAt(0).get('MENSAJE');
estado.push(err);
estado.push(mensaje);
doSomeThingWithVariable(estado);
},
});
的可能的复制[jQuery的AJAX返回值](http://stackoverflow.com/questions/4982983/jquery-ajax-return-value) –
设置负荷处理程序它调用存贮器装入一个包装函数方法。这将允许您在wrapper方法内使用变量作用域,您可以在回调触发时访问和设置它。 – Hardrada