2013-05-22 2 views
0

자바 스크립트 용 Jeditable 플러그인을 사용하려고합니다. 은 .js 파일에서Jeditable 플러그인에 Symfony2 경로를 설정하는 방법

: 여기에 코드 (나는 here에서했다)이다이 작동하지 않습니다

$('.edit').editable(function (value, settings) { 
     var data = {}; 
     data[this.id] = value; 
     data["_token"] = "{{form._token.vars.value}}"; 
     $.post("{{ path('edit_category', { 'id': cat.id}) }}", data); 
     return(value); 
     }, { 
      indicator:'Saving...', 
      tooltip:'Click to edit', 
      cancel:'Cancel', 
      submit:'Save' 
     }); 

, 그것은 말한다는

No route found for "POST /{{ path('edit_category', { 'id': cat.id}) }}"

것을 id 매개 변수를 경로 (cat.id)에 전달하는 방법을 모르기 때문에 이해합니다.

<a href="{{ path('edit_category', { 'id': cat.id}) }}"> 
    <i class="icon-pencil right-spacer"></i> 
</a> 

이 어떤 도움을 이해할 수있을 것이다 :

내가 에서 템플릿 파일 만 심포니와 편집을 할 거라고 방법입니다! 미리 감사드립니다!

+0

이 소스 코드는 하나의 js 파일 안에 있습니까, 아니면 나뭇 가지 템플릿 안에 있습니까? – Sgoettschkes

+0

js 코드가있는 첫 번째 파일은 별도의 파일에 있고 다른 파일은 템플릿에 있지만 js가있는 파트가 정상적으로 작동하면 중복됩니다. 내 질문을 업데이트했습니다. – Faery

답변

1

표현식 {{ path() }}은 나뭇 가지 표현식이므로 나뭇 가지 템플릿 파서가 구문 분석해야합니다. Javascript 파일은 일반적으로 파싱되지 않습니다.

이 문제를 해결하는 방법에 대한 몇 가지 옵션이 있습니다. 하나의 아이디어는 나뭇 가지 템플릿에 자바 스크립트 코드를 인라인하는 것입니다. 물론 큰 코드 블록에는 적합하지 않고 매우 깨끗하지는 않습니다. 물론

data["_token"] = token; 
$.post(path, data); 

당신이 수도 : 당신은 단지 변수를 사용하여 JS 파일에서

<script> 
    var token = "{{form._token.vars.value}}"; 
    var path = "{{ path('edit_category', { 'id': cat.id}) }}"; 
</script> 

:

더 좋은 방법은 레이아웃 나뭇 가지 템플릿 변수에하는 Pathes를 저장하는 것입니다 당신이 많은 pathes 또는 가변이있는 경우에 그 부호를 tweek 필요로하십시오.

+0

대단히 감사합니다! – Faery

관련 문제