2012-02-27 1 views

답변

23

Ember.TEMPLATES에 새 템플릿을 등록 할 수 있습니다. 그런 다음 조회 할 수 있습니다.

내 코드에서 발췌 (jQuery를 아약스 핸들러) : 그것 뿐이다

success: function(data) { 
    $(data).filter('script[type="text/x-handlebars"]').each(function() { 
    templateName = $(this).attr('data-template-name'); 
    Ember.TEMPLATES[templateName] = Ember.Handlebars.compile($(this).html()); 
    }); 
} 

.

+1

마이크를 사용하여 쉽게 장착 할 수있는 텍스트 파일에 handlerbar 템플릿을 컴파일 최적화 ... 더 큰 패키지로까지 그 코드를 포장 줄래 라이프 사이클? 어떻게 외부 템플릿을 저장하고 있습니까? 파일 형식은 무엇입니까? get 또는 getJSON으로로드 중입니까? – commadelimited

+0

HTML 엔티티가 포함 된'get' 호출 결과에서 일반 표준 페이지 응답으로 도착할 때 템플릿 내용을 검색합니다. –

+0

이것은 [내] 세계 절약 솔루션 :) Thx! –

7
난 그냥 같은 일을 찾고

신용 아래의 조각과 함께 플레이가하려고 생각했다

: 나는로드 텍스트 플러그인과 함께 requirejs을 사용하고 https://gist.github.com/2165681

<script> 
/* 
* Loads a handlebars.js template at a given URL. Takes an optional name, in which  case, 
* the template is added and is reference-able via templateName. 
*/ 
function loadTemplate(url, name, callback) { 
    var contents = $.get(url, function(templateText) { 
    var compiledTemplate = Ember.Handlebars.compile(templateText); 
    if (name) { 
     Ember.TEMPLATES[name] = compiledTemplate 
    } else { 
     Ember.View.create({ template: compiledTemplate }).append(); 
    } 
    if (callback) { 
     callback(); 
    } 
    }); 
} 
</script> 
+0

흥미 롭습니다. 하나의 템플릿을로드하는 것이 더 원시적입니다. 내 이전 솔루션은 * (내 필요에 더 충당) *로드하는 템플릿의 수를 허용합니다. –

+0

알겠습니다. 나는 실제로 HTML 파일에서 약간의 잡음을 얻고 너무 많은 요청을 생성하지 않기 위해 더 많은 다중 템플릿 'include'파일에 대한 아이디어를 상당히 좋아한다. 좋은 전화 – joevallender

1

GitHub의에 borismus을 동적으로 핸들 바 템플릿. 우리가 볼 수 있도록

r.js는 requirejs 또는 아약스