2014-09-29 4 views
0

처음 구성 요소를 만들었지 만 대부분의 자습서에서는 ember-rails를 사용하지 않는 것으로 가정합니다.ember-rails에서 구성 요소를 만들 때 명명 규칙

필자가 이해 하듯이 구성 요소는 Ember.Components를 확장해야하며 자체 템플릿을 가지고 있어야하며 둘 다 올바르게 명명되어야합니다. 그런 다음 핸들러 내부에서 사용할 수 있으며 어느 템플릿 에든 배치 할 수 있습니다.

어디로 잘못 가고 있습니까? 내가 열려고 {{목차}}를 somepage 템플릿 및 포함 후에

# app/assets/javascripts/components/table-of-contents.js.coffee 
App.TableOfContentsComponent = Ember.Component.extend 

# app/assets/javascripts/templates/components/table-of-contents.js.hbs 
<h2>Look Ma! My component works! 
<ul> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li>Item 3</li> 
</ul> 

# app/assets/javascripts/templates/somepage.js.hbs 
<h1>Here be Some Page with it's own Table of Contents</h2> 
{{table-of-contents}} 

콘솔은 저에게이 터무니없는 오류를주고있다 somepage

Uncaught Error: Assertion Failed: You must pass a view to the #view helper, not function() { 

[편집 1 : 더 발견 보석 README에있는 정보. Daah. 실제로 이것에 대한 더 많은 정보를 기대하지 않았습니다. 지금 끝내기 : https://github.com/emberjs/ember-rails]

답변

0

설계대로, 구성 요소에는 실제로 사용자 정의 javascript가 필요하지 않습니다. ember-rails가 개별 소스 파일을 컴파일하는 방법을 정확히 모르겠지만 구성 요소의 HTML 소스는 이와 유사해야합니다. 그렇다면 - - 그 사용 타다 알 수없는 핸들 도우미를 발견하면

<script type="text/x-handlebars" id="index"> 
    <h1>Here be Some Page with it's own Table of Contents</h2> 
    {{table-of-contents}} 
</script> 

<script type="text/x-handlebars" id="components/table-of-contents"> 
    <h2>Look Ma! My component works! 
    <ul> 
     <li>Item 1</li> 
     <li>Item 2</li> 
     <li>Item 3</li> 
    </ul> 
</script> 

, 그것은 당신이 "구성 요소 /"에서 템플릿으로 정의가 있는지 확인합니다.