Javascript 单击时包含具有不同变量值的模板文件-Symfony2/Twig
当涉及到js文件、控制器、模板之间的通信时,以及在涉及到js和ajax时,我完全不懂 我有如下不同的链接:Javascript 单击时包含具有不同变量值的模板文件-Symfony2/Twig,javascript,jquery,symfony,twig,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'
<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} %}
});
$('#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) ;
});
但是通过这种方式.js不会将索引变量赋给twig,我得到一个错误,即未定义索引:(
如何解决此问题?这不需要通过控制器。更改“var”值即可完成此任务。最好的方法是使用,如果出于某种原因您不想使用该捆绑包,您可以执行以下操作:
<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} %}
});
$('#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。谢谢,但有一个问题:当我将其放在单独的.js文件中时,我得到错误,即/get/{{没有路由,当我将其放在模板文件中时,我再次得到该索引未定义:(请记住,您需要创建名为route_name的路由。'route_name'只是一个示例,它可以是任何东西。至于为什么没有定义索引,是因为我犯了一个错误。index是一个js变量。我认为最好的方法是使用FOSJsRoutingBundle。该捆绑包有一个函数。我将使用一个不推荐的w进行编辑。)做这件事的方法。