1

当涉及到 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' 值就可以了。

4

1 回答 1

2

Best way to do this is using FOSJsRoutingBundle, if for some reason you do not want to use that bundle you might do something like this:

$('#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) ;


});

Not sure if syntax is correct but hopefully you get the idea. Again I recommend you use FOSJsRoutingBundle if you will be doing this a lot.

于 2013-08-13T12:14:14.867 回答