如何链接JS route var和Symfony 2 URL

时间:2014-06-12 13:45:30

标签: javascript php symfony

我想知道连接SF2路线的最灵活的解决方案是什么?一个包含路由的JS var。 对于静态路由,我没有任何问题,但是当我想用参数连接URL时,我没有找到任何解决方案(没有硬编码)。

如果我编辑routing.yml文件,更改时的动态网址

,该怎么办?

我正在使用var url = "domain.com/path/to/url/with/" + token + "/and/" + name进行生成但不灵活。

我知道twig生成的网址是服务器端等...

任何解决方案?

前:

JS

var route = {
    home : "{{ path("home") }}",
    custom_route : "{{ path("my_custom_route") }}"
}

Routing.yml

my_custom_route:
    pattern:  /path/to/url/with/{token}/and/{name}
    defaults: { _controller: "SupboxCloudBundle:Public:file" }

2 个答案:

答案 0 :(得分:1)

我想你可以试试FOSJSRoutingBundle

答案 1 :(得分:0)

嗯,这取决于你想要达到的结果。你是在某种JS应用程序中这样做的吗?

如果是我,我会在DOM中渲染路径或路由参数。我不会在JS中渲染任何东西,我会把JS代码抽象化。

例如:

<div data-custom="{{ path("my_custom_route") }}"></div>
<div data-home="{{ path('home') }}"

<a href="{{ path("my_custom_route") }}" data-route="home">whatever</a>

然后你可以在需要时从JS中获取你的路线(从第一个例子开始):

var route = {
    home: $('div[data-home]').data('home'),
    custom_route: $('div[data-custom]').data('custom')
}

这有点乱,因为我只是想向你展示一个概念。但是,您的实际实施将取决于您尝试实现的实际结果。

如果您在下面评论更具体的意图,我会为您提供更好的解决方案。