2011-08-12 2 views
4

서버 (레일 포함) 및 클라이언트 (자바 스크립트 사용)를 사용할 때의 우수 사례 우수 사례가 있습니까?서버 (레일) 및 클라이언트 (자바 스크립트)에서 콧수염 렌더링

# hello_world.mustache 
Hello {{planet}} 

# some other file 
<% 
hello_world_template = File.read(File.dirname(__FILE__) + "/hello_world.mustache") 
%> 

<script id="hello_world_template" type="text/x-jquery-tmpl"> 
    <%= hello_world_template %> 
</script> 

<script> 
    // $.mustache = using mustache.js and a jquery mustache wrapper 
    // search on "Shameless port of a shameless port" 
    document.write($.mustache($("#hello_world_template").html(), { "planet" : "World!" })); 
</script> 

<%= Mustache.render(hello_world_template, :planet => "World!") %> 

위의 내용은 확장 할 수 없습니다. 나는 이것을 위해 내 엔진을 만들지 않기를 바랄 것이다.

서버 및 클라이언트에서 템플릿을 다시 사용할 수있는보다 완벽한 템플릿 엔진이 있습니까?

또한 서버와 클라이언트의 중첩 템플릿을 고려하는 템플릿이 있습니까?

+0

Express 웹 서버, RequireJS, Backbone.js 및 템플릿 엔진과 함께 Node.js를 사용하는 것이 가장 좋은 방법이라는 것을 발견했습니다. 클라이언트 또는 서버에서 아름답게 작동합니다. –

답변

5

이는 Poirot 사용할 수 : 콧수염 + 레일 필자는 여기에 3

+2

감사합니다. 감사합니다. 나는 또한 Isotope라고 불리는 것을 보았다. 지금 그것을 통해 독서. http://devign.me/isotope-hybrid-ruby-on-rails-template-engine-for-client-side-and-server-side/ –

+0

도 괜찮아 보입니다. – apneadiving

2

레일 구문에 루비에 대해 잘 알고 있지만 :

ㄱ) 서버 측의 마크 업을 생성 할 할 (선택 사항이라면) json 데이터를 항상 클라이언트에 보내고 js 콧수염 엔진이 처리하도록하십시오.

b) 여전히 서버 측 렌더링 엔진을 유지하려는 경우 수행 할 수있는 작업 폴더에있는 모든 콧수염 템플릿을 유지하는 것은 빌드하는 동안 (또는 레일 위의 루비에서 이와 동등한) 실행하는 스크립트를 작성하는 것입니다. 모든 템플릿을 올바른 명명 규칙을 사용하여 멋지게 범위가 지정된 JS 파일로 결합합니다.

뭔가를 다음과 같이

var MUSTACHE_TEMPLATES= MUSTACHE_TEMPLATES || (function(){ 
var template1= "<big ass template>"; 
var template2="<small template>"; 

return 
{ 
template1: template1, 
template2: template2 
} 
}()); 

당신은 그 접근 방식에 대해 어떻게 생각하십니까? 이제 템플릿을 단일 위치에 저장하고 캐시 된 js 파일의 장점을 얻을 수 있습니다.

+0

멋진 접근 방식, +1 – apneadiving

+0

비 자바 스크립트 전문가가 이해하기 쉽기 때문에 차라리 더 명확하고 쉽게 접근하기 때문에 차라리