3

我正在开发一个使用 Symfony2 和 twig 作为模板的应用程序。我也在使用ajax。这是我的控制器中代码的一部分:

    public function testuaanotatuAction(Request $request)
    { 
      if ($request->isXmlHttpRequest())
      {
       return $this->forward('AnotatzaileaAnotatzaileaBundle:Page:Interpretatu');
      }

    // Some code.....
            return $this->render('AnotatzaileaAnotatzaileaBundle:Page:AnotatuInterpretazio.html.twig',
                                   array('Azpimarratu' => $Markagarria->getMarkIdent()));

}


    public function InterpretatuAction()
    {
      return $this->render('AnotatzaileaAnotatzaileaBundle:Page:FAQ.html.twig');
    }

然后这是我在 AnotatuInterpretazio.html.twig 中的代码,如果我使用 JQuery 进行 Ajax 调用:

<script type='text/javascript'>
          $("#ButtonId").click(function () 
                             {
                               $.ajax({
                                        url: "{{ path('AnotatzaileaAnotatzaileaBundle_testuaanotatu') }}",
                                        type: "POST"
                                       });      
                         });
    </script>

如您所见,我打算在这里做的是通过模板 AnotatuInterpretazio.html.twig 调用 InterpretatuAction。然后 InterpretatuAction 将调用另一个模板。它不起作用,有什么想法吗?

4

3 回答 3

2

您需要.success在代码中使用函数。如果你不这样做,什么都不会发生

于 2012-05-14T21:20:14.443 回答
1

我认为问题在于 JavaScript 无法解析该方法path(),该方法仅在服务器端对 twig 有用。

于 2012-10-27T18:51:54.167 回答
0

您可以使用该方法path(),始终认为您在一个 twig 模板(虽然您是在一个脚本)里面{{ }}。它会是这样的:

<a href="{{ path('usuario_logout') }}">Cerrar sesión</a>

这段代码是我的一个项目的一部分,它正在工作。

于 2013-04-08T16:03:41.877 回答