2016-02-26 6 views
2

У меня проблема в моем представлении twig, когда я передаю params в пути URL-адреса ajax, логическая ветка выполняется перед javascript, поэтому он не распознал входное значение, переданное как параметр. Есть ли решение для этого, не передавая параметр в данных?Ajax url parametetr using Twig path

<script type="text/javascript" charset="UTF-8"> 
(function($) { 

    var $projectField = $('#project-field-container'); 

    $projectField.on('change', function() { 
     var id_project = $(this).val(); 
     if('' != id_project) { 
      $.ajax({ 
       url: {{ path('project_field', {'id_project': id_project})}}, 
       success: function (data) { 
        var content = $('select', data.contentHTML).html(); 
        $projectField.html(content).trigger('change'); 
       } 
      }); 
     } else { 

     } 
    }); 
})(jQuery); 

ответ

1

Вы должны использовать FOSJsRoutingBundle для этого. У этого есть интерфейс, который подобен или, возможно, даже идентичен Twig {{ path() }} и позволяет только выставить небольшую часть маршрутов в Javascript.

Ваша реализация js затем сможет генерировать маршруты as you can see in the documentation.

+0

Thanks Rvanlaak !! – Rim

1

Может быть, вы могли бы попытаться назначить оператор прут к переменной Js ранее (до вызова AJAX), как это:

var path = {{ path('project_field', {'id_project': id_project})}}; 

, а затем использовать

url: path 

в запросе Ajax.