在JS中调用twig模板

时间:2016-05-04 14:33:30

标签: javascript jquery symfony

我有一个带symfony2的json api:

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函数中,我想在我的新twig文件中附加twig模板。

但没有发生任何事情。

我还想在模板中使用data.deliveryRange的变量。

有可能吗?

3 个答案:

答案 0 :(得分:2)

使用$this->renderView()代替render()方法。 renderView()以字符串形式返回twig模板的内容,而render()返回Response个对象。

答案 1 :(得分:2)

尝试:

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

答案 2 :(得分:-1)

你需要这样做:

try {
....
} catch (IOException e) { 
     e.printStackTrace();
}