2014-11-26 5 views
0

는 이제 내가 엠버 구성 요소 "ㅋ"를 가지고 내가이있을 때마다 "일부 내용이"렌더링되는 것을 알고이잡아 엠버 구성 요소의 내용은

{{#blah}} 
    some content 
{{/blah}} 

처럼 내 템플릿에 사용한다고 가정 해 봅시다 { {yield}}를 구성 요소의 hbs 파일에 저장합니다. 그러나 구성 요소의 js 파일에서 "일부 내용"을 문자열로 가져 오는 방법이 있습니까? 예 :

App.BlahComponent = Ember.Component.extend({ 
    render: function(buffer) { 
    var someContent = ??? 
    } 
}); 

업데이트 그냥 내가 뭘하려고 오전 명확합니다. 목록보기 구성 요소를 만들고 싶습니다. 이 같은 것

{{#list-view}} 
    <div> html for list item </div> 
    <div> html for form </div> 
{{/list-view}} 

목록보기는 여러 목록 항목을 렌더링합니다. 목록 항목을 클릭하면 양식이 표시됩니다. 양식은 모든 목록 항목에 대해 동일하지만 현재 목록 항목의 모델에 바인딩되어 있습니다. 위의 html은 서버에서 생성되는 템플리트의 일부이며 동일한 템플리트에 여러 목록보기가있을 수 있습니다. 내가하려는 것은 구성 요소의 render 메서드에서 {{#}} {{/}} 태그 사이에있는 내용을 가져 와서 구문 분석하고 목록보기를 수동으로 렌더링하는 것입니다.

+0

예상되는 최종 결과를 설명하면 정답을 쉽게 찾을 수 있습니다. – givanse

+0

일부 콘텐츠의 출처는 어디입니까? 그것은 JSON, XML입니까? 답변의 양과 질은 질문의 질과 직접적인 관계가 있습니다. – givanse

+0

'someContent'를 왜 파싱해야합니까? 당신은 그것들이 서버에서 오는 양식이라고 말했고, 이미 HTML/DOM 요소를 받고 있다고 생각합니다. JQuery를 사용하여 그것을 'div'에 삽입하십시오. 나는 당신이 그것을 만들 수있는 시간을 생각합니다 : http://emberjs.jsbin.com – givanse

답변

0

해킹하지 않으려는 경우 템플릿에 텍스트를 가져올 수 없습니다.

속성을 전달하십시오.

App.IndexController = Ember.Controller.extend({ 
    someContent: function() { 
    return 'Lorem ipsum dolor sit amet.'; 
    }.property() 
});  

<!-- in index template --> 
{{#blah someContent=someContent}} 
    {{someContent}} 
{{/blah}} 

App.BlahComponent = Ember.Component.extend({ 
    render: function(someContent) { 
    var someContent = this.get('someContent'); 
    } 
}); 
+0

당신의 대답을 이해하지 못했습니다. 왜 나는 부동산이 필요한가요? {{#}} {{/}} 태그 사이에서 HTML 콘텐츠를 가져와야합니다. – Serge

+0

요점은 동일하게 유지되지만 답변을 편집했습니다. – givanse

+0

슬프게도 이것은 나를 위해 작동하지 않습니다. 제 경우의 템플릿은 서버에서 자동 생성되며 "someContent"는 그 일부입니다. 내 방식대로 해킹 할 수있는 방법이 있습니까? – Serge