2011-08-30 6 views
2

내 Play 컨트롤러에 많은 $ .get (..) 및 $ .post (..) 액션 호출을 사용하는 jQuery로 webapp를 빌드하고 있습니다. .자바 스크립트 파일에서 @ {Controller.action()} 사용

예 :

$.get('@{Patients.activeEpisodes()}', function(data) { 
     $('#secondary').append(data); 
}); 

내 템플릿 파일에 직접 자바 스크립트 함수를 만듭니다 @가 {Controller.action()} 태그가 제대로 올바른 URL로 대체됩니다.

하지만 # {script 'myJavaScriptFile.js'/} 태그를 사용하여 템플릿에서 가져온 별도의 .js 파일에 같은 함수를 넣을 때이 @ {xxx} 태그는 올바른 URL의 .

이러한 태그를 templating enginge으로 올바르게 대체 할 수있는 방법이 있습니까? 답변 해 주셔서 감사합니다. Richard

답변

0

아니요, 템플릿 엔진은 Play Templates에서만 작동합니다. 외부 * .js 파일은 처리가 필요없는 Javascript 파일로 간주되므로 무시됩니다.

유일한 해결책은 해당 코드를 템플릿에 넣는 것입니다 (또는 경로를 하드 코드).

+0

답장을 보내 주셔서 감사합니다. 하드 코딩 URL을 정말 코드의 유지 보수에 도움이되지 않습니다; 나는 경로 설정 파일을 정말로 좋아한다. 내가 지금 생각하고있는 대안은 스크립트에 전용 인 템플릿 파일에 자바 스크립트를 넣고 기본 템플릿을 포함시키는 것입니다. – Bjarne77

+0

@ Bjarne77 예, 하드 코딩은 일반적으로 옵션이 아닙니다. 템플릿에 넣을 수도 있지만 코드를 사용하는 템플릿에 추가 할 수는 없습니까? 그것은 한 페이지에만 매우 특이한 것처럼 보입니다. –

+0

@Peter Villega - 복잡한 기능이 포함되어 있으므로 모든 메서드를 몇 가지 외부 .js 파일에 함께 묶어보고 싶습니다. 내가 내의 .js은과 같이 템플릿에 파일을 포함하여 workarond를 발견했습니다 : { '/public/javascripts/myJavascriptFile.js'/를 포함} 그것의 연장이 될 수 .js 파일을 포함시킬 수있는 기능을 '포함'합니다 (예 : 코드를 둘러싼 자동

관련 문제