2016-05-04 2 views
0

У меня есть JSon апи с Symfony2:Вызов шаблона прут в JS

return new JsonResponse(array(
    'deliveryRange' => $deliveryRange, 
    'html' => $this->render(':App:Command/deliveryRange.html.twig'), 
)); 

Диапазон доставки является массив, переменная HTML отправить мне мой шаблон прут.

Вот мой JS:

callDeliveryRange: function(){ 
    $.ajax({ 
     type: "POST", 
     url: Command.routeApiRange, 
     cache: false, 
     data: {}, 

     success: function (data, status) { 
      Command.htmlDeliveryRange(data); 
     }, 
    }) 
}, 

htmlDeliveryRange: function(data){ 
    $('#content-delivery-range').html(data.html); 
}, 

В функции htmlDeliveryRange я хотел бы добавить шаблон прут в моем новом файле веточку.

Но ничего не происходит.

И я хотел бы также использовать переменную data.deliveryRange в шаблоне.

Возможно ли это?

ответ

1

Попробуйте просто:

return new JsonResponse([ 
    'deliveryRange' => $deliveryRange, 
    'html'   => $this->renderView(':App:Command/deliveryRange.html.twig'), 
]); 
+0

Спасибо, и как я могу использовать переменную '$ deliveryRange' в этом шаблоне? – Kevin

2

Использовать $this->renderView() вместо render() метод. renderView() возвращает содержимое шаблона ветви в качестве строки, а render() возвращает Response объект.

-1

Вам нужно сделать:

$lReturn['html'] = $this->renderView(':App:Command/deliveryRange.html.twig'); 
$lReturn['deliveryRange'] = $deliveryRange; 

return new Response(json_encode($lReturn), 200, array('Content-Type'=>'application/json')); 
Смежные вопросы