2016-05-25 5 views
1

У меня есть шаблон элементов управления Ember.js, запускающий цикл {{#each}}, чтобы перебирать возвращаемые данные хранилища. В магазине есть только одна запись, поэтому я ожидаю, что этот код будет выполнен 1 раз. Тем не менее, он не выполняется вообще, и я не могу понять, почему. Вот код .hbs:Шаблон Ember.js, не повторяющийся над {{#each}}

{{#each model.framework as |framework|}} 
    {{#paper-item noink=true}} 
    <p class="question"> 
     {{paper-input label="Question" required=true value=detail}} 
    </p> 
    <p class="option"> 
     {{#paper-radio value="text" selected=type}}Text{{/paper-radio}} 
     {{#paper-radio value="radio" selected=type}}Options{{/paper-radio}} 

     {{#paper-button action=(action "newQuestion" framework.id) raised=true}}Add Question{{/paper-button}} 
    </p> 
    {{/paper-item}} 
{{/each}} 

{{#each}} Этот цикл должен быть представления данных из этого запроса на мой магазин (из моих routes.js файл для этой страницы):

model(params) { 
    var id = params.framework_id; 
    return Ember.RSVP.hash({ 
    question: this.store.query('question', {orderBy: 'framework', equalTo: id}), 
    framework: this.store.find('framework', id) 
    }) 
} 

И я знаю, маршрутизации и запрос магазина работают правильно, потому что рамки я пытаюсь перебирать на это в хранилище данных через Ember инспектор:

Ember.js Inspector Data

Есть другие {{#each}} петли на странице (для магазина вопросов), работающие без проблем. Любые мысли оцениваются.

ответ

1

model.framework является единственным объектом, который вы извлекаете из вашего внутреннего интерфейса с помощью store.find:

return Ember.RSVP.hash({ 
    question: this.store.query('question', {orderBy: 'framework', equalTo: id}), 
    framework: this.store.find('framework', id) // <-- This returns an object 
}) 

Однако, как Ember Docs объяснить:

на {{#each}} хелпер перебирает элементы в коллекция.

Это означает вы можете не перебирает один объект, поскольку он не является коллекцией. Вы должны удалить {{each}} помощника и использовать model.framework вместо framework:

{{#paper-item noink=true}} 
    <p class="question"> 
    {{paper-input label="Question" required=true value=detail}} 
    </p> 
    <p class="option"> 
    {{#paper-radio value="text" selected=type}}Text{{/paper-radio}} 
    {{#paper-radio value="radio" selected=type}}Options{{/paper-radio}} 

    {{#paper-button action=(action "newQuestion" model.framework.id) raised=true}}Add Question{{/paper-button}} 
    </p> 
{{/paper-item}} 

Если вы хотите, чтобы цикл по свойствам объекта вместо этого, вы можете проверить each-in helper

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