2012-04-11 4 views
2
RequireJS 가져오고 내 응용 프로그램에 내 템플릿을 컴파일하는 나는 tpl! 플러그인을 사용하고

- text! 플러그인과 유사한이 모든 위대한 작품을밑줄 템플릿 생성 - (RequireJS와) 파셜

define([ 
    "tpl!../templates/newsfeed.html", 
    "tpl!../templates/friends.html", 
    "tpl!../templates/tag.html", 
    "tpl!../templates/tags.html", 
], function (renderNewsfeed, renderFriends, renderTag, renderTags) { … }); 

,하지만 난이 내가 이상적으로 어떤 형태의 부분을 사용하고 싶을 무대에 올랐다. 내가 템플릿 안에 템플릿을 사용하려면

현재, 정말 좋아, 내가 렌더링하고 템플릿에 컴파일 된 부분을 통과해야합니다 :

$('body').append(renderTags({ 
    tags: tags, 
    renderTag: renderTag 
})); 

을 그리고, 내 템플릿에서 :

<section class="tags-list"> 
    <h1 class="h4 hidden">Tags</h1> 
    <% _.each(tags, function (tag) { %> 
     <%= renderTag({ tag: tag }) %> 
    <% }); %> 
</section> 

컴파일 된 부분을 템플릿에 전달하지 않으면 찾지 못할 것입니다.

내 질문은 어떻게 할 수 있습니까? 내 RequireJS 정의에서 종속성으로 정의한 템플릿을 템플릿의 변수 범위에서 사용할 수 있다면 (전역 적으로) 컴파일 된 부분을 템플릿에 전달할 필요가 없을 것입니다.

define([ 
    'tpl!../templates/tag.html' 
], function (renderTag) { 
    // Obviously this can't be straight HTML, but you get the idea 
    <section class="tags-list"> 
     <h1 class="h4 hidden">Tags</h1> 
     <% _.each(tags, function (tag) { %> 
      <%= renderTag({ tag: tag }) %> 
     <% }); %> 
    </section> 
}); 

내가 여기에 완전히 다른 행성에있을 수 있습니다 :

둘째, 같은 RequireJS와 함께 사용 할 수 있습니다 의존성 정의의 종류하지만 템플릿이 정말 좋은 것입니다. 나는 누군가 템플릿을 사용하는 방법을 친절하게 설명해 줄 것입니다. 아마도 템플릿 엔진을 전환해야합니까?

답변

1

실제로 예를 들어, 필요한 부분 지문을 가져, 템플릿 안에 require()을 사용하는 것이었다과 함께 제공되는 해결 방법 : 템플릿에 자바 스크립트를 추가

<% 
require([ 
    "tpl!../templates/partials/tags.html", 
    "tpl!../templates/partials/spotify-search.html", 
    "tpl!../templates/partials/popup.html" 
], function (renderTags, renderSpotifySearch, renderPopup) { %> 
    // Template code goes here 
    // Partial example: 
    <%= renderTags({ tags: tags }); %> 
    <% 
}); %> 
+0

이 뷰의 목적을 패배. 대신 CanJS와 같이 할 수있는 프레임 워크를 사용하십시오. http://canjs.us/#can_view-render – TruMan1