2017-01-06 1 views
-1

HTML 요소에서 일부 내용을로드 할 수 있도록 URL을 생성해야합니다.자바 스크립트에서 twig 변수를 설정하십시오.

$('#editSchool').click(function() { 
      var id = $(this).attr('data-id'); 

문제는 id 매개 변수에 대한 id 값을 삽입하려고 할 때 여기서 시작

  $('#educationDialog').load("{{ path('_education_edit', {'id': id}) }}", function() { 
       $('.closeDialog, #person_education_form_cancel').click(function() { 
        $('#addSchool').trigger('click'); 
       }); 
      }); 
     }); 

이 가능하다면 당신은 어떤 솔루션이 있습니까?

+0

문제와 원하는 동작을 명확하게 명시하십시오. – Utkanos

답변

1

나뭇 가지가 페이지가 렌더링 될 때 구문 분석, 그래서 id 변수 경로의 declartion에 페이지가로드 될 때 설정됩니다.

가장 쉬운 방법은 id에 nullable 매개 변수를 허용하도록 경로를 변경 한 다음 JavaScript의 경로에 ID를 추가하는 것입니다. 또한 JavaScript에서 사용하기 위해 url twig 함수는 절대 URL을 제공하므로 경로를 사용해야합니다. 경로는 상대 URL을 제공합니다. 참조 : What is the difference between 'url' and 'path' in symfony2.3

예제 routing.yml;

my_route: 
    path: /foo/bar/{id} 
    defaults: { _controller: AppBundle:Foo:bar, id: null } 

다음 나뭇 가지에;

<script> 
var url = '{{ url('my_route') }}'+'/'; 
var id = $(this).attr('data-id'); 
$('#educationDialog').load(url+id, function() { 
    // ... 
}); 
</srcipt> 
+0

나뭇 가지 템플릿에 자바 스크립트를 넣는 것을 피해야합니다 –

+0

@ t-n-y 어디에서 자바 스크립트를 넣고 나뭇 가지 파일에 넣어야합니까? – Rooneyl

+0

js 파일에서 자바 스크립트를 분리하는 것이 좋습니다. css를 html에 넣는 것을 피하는 것처럼 코드를 분리하지 않아야합니다. –

관련 문제