使用 Twig 和 Symfony2 在 javascript 中生成路由
很奇怪的问题,很抱歉问,我对 Symfony/Twig 很陌生。我的路线需要强制性 region_id
参数:
ajax_provinces_by_region:
pattern: /ajax/region/{region_id}/provinces
defaults: {_controller: SWAItaliaInCifreBundle:Ajax:provincesByRegion }
requirements: {region_in: \d+}
问题是:我如何根据 javascript 中的 select
元素生成此路线(代码如下) ?
问题是:我无法使用 Symfony 的 path
和 url
帮助程序,因为它们需要指定 region_id
参数 (this.value
) 我无法访问,因为它是一个 javascript 变量(并且 Twig 是在服务器端编译的)。
$(document).ready(function() {
$('select#regions').change(function(){
// Make an ajax call to get all region provinces
$.ajax({
url: // Generate the route using Twig helper
});
});
});
Quite odd problem, sorry for asking, i'm quite new to Symfony/Twig. My route requires a mandatory region_id
paramenter:
ajax_provinces_by_region:
pattern: /ajax/region/{region_id}/provinces
defaults: {_controller: SWAItaliaInCifreBundle:Ajax:provincesByRegion }
requirements: {region_in: \d+}
The question is: how can i generate this route based on a select
element in javascript (code below)?
The problem is: i can't use path
and url
helpers from Symfony as they require to specify the region_id
parameter (this.value
) i can't access because it's a javascript variable (and Twig is compiled server-side).
$(document).ready(function() {
$('select#regions').change(function(){
// Make an ajax call to get all region provinces
$.ajax({
url: // Generate the route using Twig helper
});
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我知道这是一个老问题,但以防万一您不想安装像 FOSJsRoutingBundle 这样的包,这里有一个小技巧:
“region_id”仅用作占位符,然后您在 JS 中将其替换为实际变量 this。价值
I know it's an old question, but just in case you don't want to install a bundle like FOSJsRoutingBundle, here's a little hack:
'region_id' is just used as a placeholder, then you replace it in JS with your actual variable this.value
您可以使用 FOSJsRoutingBundle。
You can use the FOSJsRoutingBundle.
其中
SampleBundle_route
是在routing.yml 或注释中定义的有效路径。为了进行测试,请在 twig 模板中写入以下内容:
Where
SampleBundle_route
is a valid path defined in routing.yml or annotatins.For testing, write this in the twig template:
您可以在 HTML 中使用 data 属性:
然后在 javascript 中使用:
You can use data attribute in your HTML:
then in your javascript: