Foro

Contexto de las variables

0
Hola amigos. La verdad es que me sucede lo siguiente. Cuando ejecuto una petición Ajax, en la función Success no se como poder asignarle un valor retornado por una de esas funciones a una variable global, por que simplemente no se lo asigna. Alguien me podría ayudar con esto?. Aquí esta mi código. var nombre_categoria_padre = 'Elementos De Configuracion'; var clase_css_categoria_padre = 'css_class_blue_folder'; Ext.Ajax.request({ url: 'index.php/categoria/obtener_categoria_root', method: 'POST', success: function (form, action) { var resultado = Ext.decode(form.responseText); nombre_categoria_padre = resultado.data.nombre_categoria; clase_css_categoria_padre = resultado.data.nombre_c_css; }, failure: function (form, action) { var resultado = Ext.decode(action.response.responseText); Ext.Msg.alert('Error !', 'No se ha logrado cargar el nombre del elemento padre para las categoriías.'); } }); var rootNode = new Ext.tree.AsyncTreeNode({ expanded: true, allowDrop: false, id: '0', draggable: false, text: nombre_categoria_padre, iconCls: clase_css_categoria_padre }); Aquí si se dan cuenta, en el RootNode, a su propiedad text le intento asignar una variable pero esta no me la reconoce. Me da que es el valor que tiene arriba o sea "Elementos De Configuración", cuando debería ser lo que me devuelve la petición Ajax.
0
Hola, prueba a asignarle la propiedad scope:this a tu Ext.Ajax.Request, asi: Ext.Ajax.request({ url: 'index.php/categoria/obtener_categoria_root', method: 'POST', success: function (form, action) { var resultado = Ext.decode(form.responseText); nombre_categoria_padre = resultado.data.nombre_categoria; clase_css_categoria_padre = resultado.data.nombre_c_css; }, failure: function (form, action) { var resultado = Ext.decode(action.response.responseText); Ext.Msg.alert('Error !', 'No se ha logrado cargar el nombre del elemento padre para las categoriías.'); }, scope: this }); y me cuentas :-?
0
Tu problema sucede porque cuando se asigna el valor a las variables es despues de que ya has creado el root, lo que debes hacer para que funciones correctamente es crear el nodo root dentro de la funciòn success Saludos

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.