2016-09-09 2 views
0

У меня есть проблема с включением прут внутри функции нагрузки JQuery, вот пример:Использование переменной прут внутри нагрузки JQuery

<!-- src/MyBundle/Ressources/views/index.html.twig --> 

{% extends'base.html.twig' %} 
{% block body %} 
    <div id="layout"></div> 

{% endblock %} 
{% block javascripts %} 
    <script src="https://code.jquery.com/jquery-2.2.0.js"></script> 
    <script> 
     $(function(){ 
      $('#layout').load("{{ asset('layout/myLayout.html.twig') }}", function(){ 
       alert($('#link').attr('href')); 
      }); 
     }) 
    </script> 
{% endblock %} 

и

<!-- web/layout/myLayout.html.twig --> 
<a id="link" href="{{ asset('layout/myLayout.html.twig') }}"> link </a> 

В этом примере, когда я загрузить страницу , оповещения дисплей {{актив («макет/myLayout.html.twig»)}} вместо http://localhost/myProject/web/layout/myLayout.html.twig

Это не интерпретируется как переменная веточных, но в качестве текста

Спасибо за вашу помощь

ответ

1

Это потому, что вы просто загружая файл шаблона прут с вашего метода Аякса нагрузки, поэтому содержимое этого файла не интерпретируются. Вам необходимо создать маршрут и контроллер для отображения файла «layout/myLayout.html.twig» и использовать его в вашем методе загрузки.

Например, если вы создаете маршрут под названием layout_route и определяет действие контроллера, который отображает ваш layout/myLayout.html.twig шаблон:

Routing:

# routing.yml 
layout_route: 
    path: /layout #or whatever you choose 
    defaults: { _controller : MyBundle:Layout:index } 

Контроллер:

// MyBundle/Controller/LayoutController 
public function indexAction() 
{ 
    return $this->render('MyBundle::myLayout.html.twig', array(); 
} 

Javascript:

$('#layout').load("{{ url('layout_route') }}", function(){ 
    alert($('#link').attr('href')); 
}); 
+0

спасибо, что работа !! – user3139853

Смежные вопросы