单击包含具有不同变量值的模板文件 - Symfony2 / Twig

时间:2013-08-13 12:03:50

标签: javascript jquery symfony twig

当谈到js文件,控制器,模板之间的通信时,我非常注意js和ajax。

我有这样的不同链接:

<a class="details" data-index ={{i}}> Link 1 </a>

但点击它们不会加载另一个页面,而是打开一个迷你页面,每个链接应该有不同的变量。

我想做这样的事情:

$('.details').on('click', function(){
        var index = $(this).data('index');
        {% include 'MyBundle::information.html.twig' with {'var':index} %}
});

但是这样.js不会将索引变量赋给twig而且我得到索引未定义的错误:(

如何解决这个问题?这不需要通过控制器。更改“var”值可以完成工作。

1 个答案:

答案 0 :(得分:2)

最好的方法是使用FOSJsRoutingBundle,如果由于某种原因您不想使用该捆绑包,则可能会执行以下操作:

$('#details').on('click', function(){
    var index = $(this).data('index');

    var $whereToLoadContent = $("#divid") ; //where you want to load data
    //__index__ is just a placeholder
    var routeWithPlaceHolder= "{{ path('route_name',{'var':'_index_'}) }}" ; 
    var routeToLoad = routeWithPlaceHolder.replace("_index_",index) ;


    $whereToLoadContent.load(routeToLoad) ;


});

不确定语法是否正确但希望您明白这一点。我再次建议你使用FOSJsRoutingBundle,如果你要这么做的话。