symfony2如何通过javascript访问细枝路径

symfony2如何通过javascript访问细枝路径,javascript,php,symfony,Javascript,Php,Symfony,在symfony2中,这在html.twig文件中运行良好: <a class="btn brl-next brl-btn" href="{{ path('new_message') }}">Next</a> var commercial = '{{path('_commercial')}}'; 但它不起作用,有人可以帮助我如何通过javascript访问symfony路径吗 您可以这样做: var commercial = '{{path('_commercial'

在symfony2中,这在html.twig文件中运行良好:

<a class="btn brl-next brl-btn" href="{{ path('new_message') }}">Next</a>
var commercial = '{{path('_commercial')}}';

但它不起作用,有人可以帮助我如何通过javascript访问symfony路径吗

您可以这样做:

var commercial = '{{path('_commercial')}}';
在layout.html.twig中定义全局js变量,如下所示:

<script type="text/javascript">
    var routes = {
        myroutes:{
            route1:"{{ path('my_symfony_route', {}, true) }}", // the true permits to use relative path
            route1:"{{ path('my_symfony_route2', {}, true) }}" 
        },
    };
</script>
var commercial = '{{path('_commercial')}}';

我希望这对你有帮助

只需添加一个带有路径属性的HTML元素。我用它来获得我的ajax路线。见下例:

var commercial = '{{path('_commercial')}}';
dyncontent.html.twig 我不知道你在用你的按钮尝试什么,但你也可以

var commercial = '{{path('_commercial')}}';
button.html.twig
现在在
new\u message\u path
变量中有了您的路径。但请考虑使您的选择器具有唯一性。

对于我的情况,我使用所有路径

var commercial = '{{path('_commercial')}}';
例如,如果路由的名称为:“new_message”,路径为
/yourproject/web/app_dev.php/message/new
,则可以在javascript中这样做:

var route='/docMessagerie/web/app_dev.php/protocol/updateProtocol/';
var commercial = '{{path('_commercial')}}';

它对我有用

您可以直接添加这样的细枝路径语法

var commercial = '{{path('_commercial')}}';
那么你可以这样打电话

var commercial = '{{path('_commercial')}}';
 window.location = commercial ;

您可以使用(由SF开发)^+1使用该捆绑包,这样您就不必重新发明轮子了。您可以将路由添加到细枝模板中的锚定标记中,如下所述:。这意味着您可以拥有独立的javascript文件,而不是在模板文件中混合使用javascript和html。@Debflav我喜欢FOSJsRoutingBundle的想法,但这取决于您需要的频率。对于一个简单的ajax任务,您想在routing.yml中定义您的路由,您还可以使用一个属性创建一个简单的div,如下所述:)它不起作用:它将直接转到:/{{path('new_message',{},true)}}这很奇怪,它对我有效。。。你能通过firebug控制台测试你的变量可见性吗?你在使用FOSJsRoutingBundle吗?不,我不使用FOSJsRouting。你可以不使用我在示例中输入的选项来尝试:
routes={myroutes:{route1:{{path('my_symfony_route')},