2014-09-27 2 views
0

Я получил компоненты «комментарии»Вызова конкретные компоненты в Эмбере

<div class="comments"> 
    <ul> 
     {{#each comment in comments}} 
      ... 
    </ul> 
</div> 

который присутствует несколько раз в HTML:

Product A: 
{{comments}} 

Product B: 
{{comments}} 

etc. 

Если установить «комментарии» все компоненты Отрендерьте Комментарии. Как я могу сообщить Ember о том, чтобы устанавливать комментарии только для определенного продукта? например при нажатии на заголовок и загрузку Ajax.

JS Bin: http://jsbin.com/wafacojenahe/2/edit

+0

Я не очень понимаете, что вы здесь говорите, мне трудно понять контекст. Не могли бы вы создать пример, здесь есть отличные шаблоны: http://stackoverflow.com/tags/ember.js/info – Kingpin2k

+0

Я отправил JSBin в свой вопрос. Таким образом, вы можете видеть, что комментарии отображаются в обоих продуктах, но каждый компонент должен загружать только Комментарии соответствующего продукта (например, onClick). –

ответ

0

Два проблемы с вашим кодом.

У вас не было никакой иерархии (или наборов) в данных. Это имеет базовую структуру на месте:

App = Ember.Application.create(); 

App.IndexRoute = Ember.Route.extend({ 
    model: function() { 
    return [ 
     { 
     'name': 'Product A', 
     'comments': [ 
      'Lorem ipsum', 
      'dolor sit amet' 
     ] 
     }, 
     { 
     'name': 'Product B', 
     'comments': [ 
      "Another comment" 
     ] 
     } 
    ]; 
    } 
}); 

И другая проблема в том, что компоненты всегда должны быть переданы все данные в

<script type="text/x-handlebars" data-template-name="index"> 
    {{#each product in model}} 
     <h1>{{product.name}}</h1> 
     {{comments-list model=product.comments}} 
    {{/each}} 
    </script> 

    <script type="text/x-handlebars" id="components/comments-list"> 
    <ul> 
     {{#each model}} 
     <li>{{this}}</li> 
     {{/each}} 
    </ul> 
    </script> 

JS Bin:. http://jsbin.com/wafacojenahe/3/

+0

Благодарим за помощь. Мое приложение построено подобно вашему JSBin, но комментарии должны загружаться на Click через Ajax (я немного изменил свой вопрос). Должен ли я заполнять массив комментариев в каждом продукте? например Продукт B Комментарии Array пуст -> load Комментарии через Ajax -> push Комментарии в Комментарии Array of Prodct B? Как Эмбер знает, какой продукт заполнить комментариями и как я? –

+0

Это изменяет ваш вопрос честно, и вместо этого вы должны опубликовать новый вопрос, показывающий, что у вас есть до сих пор, и с чем вы боретесь (и в идеале принимаете данный ответ, если это ответили на вопрос). Если вы еще не используете данные ember-данных, подумайте о том, чтобы попробовать хотя бы сначала ... это поможет с вызовами ajax. – Leeft

+0

Итак, я пробую ember-data, и если это не сработает, я снова спрошу;) Спасибо! –

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