2014-11-26 2 views
0

Допустим, у меня есть компонент Ember «бла», и я использую его в шаблоне, как этотзахватить Ember компонента в JS файл

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

Я знаю, что «некоторое содержание» будет оказана, когда есть { {yield}} в файле hbs компонента. Но есть ли способ захватить «некоторый контент» как строку в js-файле компонента? Например.

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

Update

Просто чтобы прояснить, что я пытаюсь сделать. Я хотел бы создать компонент List View. Что-то вроде этого

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

В виде списка отображается несколько элементов списка. Когда вы нажимаете элемент списка, форма отображается. Форма одинакова для всех элементов списка, но имеет привязку к модели текущего элемента списка. Вышеупомянутый html является частью шаблона, который генерируется на сервере, и может быть несколько видов списка в одном шаблоне. То, что я пытаюсь сделать, это получить то, что находится между тегами {{#}} {{/}} в методе рендеринга компонента, проанализировать его и визуализировать представление списка вручную.

+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

Смежные вопросы