2013-04-08 2 views
3

을 사용하여 템플릿을 프리 컴파일하고 있습니다. 이 도구는 예상대로 내 템플릿을 Ember.TEMPLATES 배열에 저장합니다. 나는 grunt-ember-templates의 구성을 조율하고 있습니다. 이를 위해 Ember.TEMPLATES 배열에서 예상되는 키가 무엇인지 알고 싶습니다. 주어진 데이터 템플릿 이름에 일치하는 템플릿 이름이 무엇입니까

<script type="text/x-handlebars" data-template-name="phones/index"> 
    .... 
</script> 

은 현재 내가 app/templates/phones_index.hbs라는 파일이 템플릿을 가지고 있고, grunt-ember-templatesEmber.TEMPLATES["app/templates/phones_index"]에 미리 컴파일 된 템플릿을두고있다, 그러나 이것은 잘못된 것입니다 :의 나는이 템플릿을 가지고 있다고 가정 해 봅시다.

data-template-name="phones/index"의 예상 키는 무엇입니까?

+1

나는 당신이, 파일 이름의 디렉토리 세그먼트를 무시하고, 응용 프로그램/templates' 디렉토리'의 내용을 컴파일하면 있도록한다고 생각 템플릿 이름으로 변환하지 마십시오. 이상적으로'phones/index.hbs'는'App.TEMPLATES [ "phones/index"]'로 번역되어야합니다. '_'은 부분에 사용되며 (예 : 전화 리소스에 연결된 범용 형식의 경우 'phones/_form.hbs') 부분 템플릿 이외의 템플릿에서 사용하는 것이 좋지 않을 수 있습니다. 나는 그란트 tho에서 최고의 사람이 아니므로, 어떻게해야하는지 정말로 말할 수는 없습니다. – MilkyWayJoe

답변

4

예에서 Ember.TEMPLATES의 키는 "phones/index"여야합니다.

경로의 첫 번째 부분을 삭제하고 app/templates/ 이후의 모든 부분을 남겨 두도록 템플릿을 구성하여 app/templates/phones/index.hbs 파일 내부에 템플릿을 배치한다고 가정하면 올바른 키를 얻을 수 있습니다. 이 설정을 사용하면 app/templates/phones/index.hbs 파일의 키는이되며 이는 data-template-name="phones/index" 인 컴파일되지 않은 <script> 태그를 갖는 것과 같습니다. (this 프로젝트의 Gruntfile.js와 동일)

Gruntfile.js :

ember_templates: { 
    options: { 
    templateName: function(sourceFile) { 
     return sourceFile.replace(/app\/templates\//, ''); 
    } 
    }, 
    'dependencies/compiled/templates.js': ["app/templates/**/*.hbs"] 
}, 
+0

생각보다 단순한 방법 +1 – MilkyWayJoe

+0

감사합니다. 그런 다음 모든 전화 관련 템플릿을'app/templates/phones' 디렉토리에 넣을 것입니다. 그러나 문제가 있습니다 :'data-template-name = "phone"'또는'data-template-name = "phone/edit"'과 관련된 템플릿을 어디에 두어야합니까? – dangonfast

+0

또 다른 질문은 : "이것은 컴팩 된