2013-03-10 5 views
4

현재 Mojolicious로 작성한 작은 웹 응용 프로그램을 정리하고 있습니다. 해당 정리의 일환으로 내 javascript를 내 html.ep 파일의 공용 디렉토리로 분리합니다.외부 JS 파일에 Mojolicious 태그 도우미를 사용할 수 있습니까?

비록 내가 'url_for'또는 '< % stashvalue %>'와 같은 숨김 값을 참조하는 것과 같이 더 이상 태그 도우미를 참조 할 수없는 것 같습니다.

어떤 아이디어가 어떻게 또는 어떻게 할 수 있는지에 대해 매우 고맙게 생각합니다.

건배. 해당 파일이 Mojolicious에 의해 처리되지 않도록

답변

4

내가 일반적으로하는 일은 자바 스크립트의 대부분을 함수 호출이나 순수 자바 스크립트 파일에 캡슐화하는 것입니다. 그럼 내 템플릿에서 그 순수한 자바 스크립트 파일을 포함하고 템플릿의 파일에 내장 된 API를 사용하여 서버 측 변수를 함수 인수로 보간합니다. Galileo 코드를 살펴보면 몇 가지 예를 볼 수 있습니다.

예를 들어, 이 숨김 값을 의 기능으로 전달하는 방법을 참조하십시오.

5

public 디렉토리에있는 물건 따라서 <% $stashvalue %> 아무것도 의미하지,하지 Mojolicious 또는 Plack으로, 최적의 웹 서버에 의해 정적으로 제공됩니다.

모조 템플릿에 서버 측 변수에 액세스해야하는 자바 스크립트 부분을 포함하는 것이 해결책이 될 수 있습니다.

자바 스크립트 파일이로드 될 때 자바 스크립트 파일에서 ajax를 호출하고 서버에서 전송 한 값을 가져 오는 것이 좋습니다. 더 우아하지만 작성해야 할 코드가 더 많습니다.

내가 생각할 수있는 Mojolicious에 의해 처리 및 매개 변수를 포함됩니다 폴더 아래에 그 자바 스크립트 파일을 이동하는 것 또 하나 - 그 JS 파일이 필요합니다 당신의 html.ep 파일이 수행

<script type="text/javascript" src="http://example.com/url/served/by/mojo/?param1=<% $stashvalue %>&param2=<% $stashvalue2 %>"></script> 

그리고 /url/served/by/mojo/에 응답하는 컨트롤러에서 js 파일을 렌더링하고 매개 변수를 쿼리의 문자로 바꿉니다. 대안으로,이 매개 변수를 저장/수신 할 수도 있습니다. session

일반적으로 Perl에서는 여러 가지 방법이 있습니다.