Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2016, 06:32
matake
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 11 años, 6 meses
Puntos: 10
Hacer ejecutable funcion recibida por ajax

Hola,

Tengo un objeto en javascript al que quiero añadir otros objetos recibidos por ajax de los cuales algunos son funciones anonimas javascript

No puedo usar $.extend() (a no ser que no se yo como hacerlo en este caso) porque tengo que emplear eval() para aquellos elementos recibidos que son funciones javascript

Tengo el ejemplo aqui

Código PHP:
Ver original
  1. $respuesta_ajax = [
  2.     "Objeto_1" => [
  3.         "clave1_1" => "function(){console.log('ok clave1_1')}",
  4.         "clave2_1" => "<div>Prueba 2_1</div>"
  5.     ],
  6.     "Objeto_2" => [
  7.         "clave1_2" => "function(){console.log('ok clave1_2')}",
  8.         "clave2_2" => "<div>Prueba 2_2</div>"
  9.     ]  
  10. ];

Código Javascript:
Ver original
  1. var Objeto_global = {};
  2.  
  3.     var recibido_ajax = <?php echo json_encode($respuesta_ajax); ?>;
  4.    
  5.     $.each(recibido_ajax,function(clave){
  6.    
  7.         Objeto_global[clave] = {};
  8.        
  9.         $.each(this,function(subclave){
  10.             if(this.indexOf('function') > -1){
  11.                
  12.                 Objeto_global[clave][subclave] = eval(''+this); //aqui salta el error
  13.                
  14.                
  15.             }else{
  16.                 Objeto_global[clave][subclave] = ''+this;
  17.             }
  18.         });
  19.     });
  20.     console.log(Objeto_global);

Me salta el siguente error: Uncaught SyntaxError: Unexpected token (

¿ Que hago mal ?

¿Que otros modos de hacer lo mismo seran mas indicados?

Gracias