2015-03-18 2 views
1

Я тестирую Ember, и я вижу, что {{each}} теперь не рекомендуется, и я должен {{каждый foo в bar}}.Ember Использование каждого

В моем коде, когда я использую только {{each}}, все работает нормально.

<ul> 
    {{#each}} 
    <li>{{this.url}} - {{this.status}}</li> 
    {{/each}} 
</ul> 

Но, журнал этого сообщения: Пожалуйста, используйте форму ключевого слова ({{#each foo in bar}}) вместо этого. См. http://emberjs.com/guides/deprecations/#toc_more-consistent-handlebars-scope для более подробной информации.

Итак, я обновил свой код на:

<ul> 
    {{#each b in billing}} 
    <li>{{b.url}} - {{b.status}}</li> 
    {{/each}} 
</ul> 

И кажется, что биллинг пуста или что-то подобное.

My Model:

import DS from 'ember-data'; 

// billing.js 
export default DS.Model.extend({ 
    status: DS.attr('string'), 
    url: DS.attr('string') 
}); 

Мои маршруты:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
     model: function() { 
       return this.store.find('billing'); 
     } 
}); 

Ember консоли: http://prntscr.com/6ibgfh

Благодарности

ответ

3

вопрос является то, что каждый помощник не знает, что billing является.

{{#each b in billing}}

Должно быть:

{{#each b in model}}

+0

Отлично. Благодарю. Документ (http://emberjs.com/guides/templates/displaying-a-list-of-items/) не должен обновляться? – elf

+1

Я не думаю, что он нуждается в обновлении ... они предполагают, что вы знаете, какие свойства находятся на вашем контроллере, они не могут документировать все ваши варианты использования ... – mpowered

0

Существует также новый "block param" syntax, так что если вы модель определяется следующим образом:

App.IndexRoute = Ember.Route.extend({ 
    model: function() { 
    return { notes: ['red', 'yellow', 'blue'] }; 
    } 
}); 

Вы можете проходное следующим образом:

{{#each notes as |note| }} 
    {{ note }} 
{{/each}} 

Рабочий пример here

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