2013-07-18 5 views
1

Имейте проект предстоящих выходных дней и используя его для оценки Ember.js, и я не могу понять, почему я не могу отображать вложенные объекты в моем шаблоне. Это не работает:Ember.js - Невозможно отобразить вложенные модели

{{#each emails}} 
    {{email_address}} 
{{/each}} 

Когда я пытаюсь только {{электронная почта}} Я получаю намек, что что-то прав:

Модели:

App.Contact = DS.Model.extend({ 
    firstName: DS.attr('string'), 
    lastName: DS.attr('string'), 
    company: DS.attr('string'), 
    emails: DS.hasMany('App.Email') 
}); 

App.Email = DS.Model.extend({ 
    contact: DS.belongsTo('App.Contact'), 
    emailAddress: DS.attr('string'), 
}); 

Маршрут:

App.Router.map(function() { 
    this.resource('contacts', function() { 
this.resource('contact', {path: ':contact_id'}); 
    }); 
}); 

App.ContactsRoute = Ember.Route.extend({ 
    init: function() {}, 
    model: function() { 
    return App.Contact.find(); 
    } 
}); 

App.ContactRoute = Ember.Route.extend({ 
    model: function(params) { 
    return App.Contact.find(params.contact_id); 
    } 
}); 

Я понятия не имею, что делать дальше. Я использую active_model_serializer в Rails. Я пробовал встраивание, боковая загрузка безрезультатно. Я уверен, что это просто, что мне не хватает. Спасибо заранее!

ответ

0

При использовании вспомогательного помощника each рекомендуется более подробно описывать элементы, которые вы зацикливаете, чтобы избежать таких проблем.

Попробуйте следующее:

{{#each email in model.emails}} 
    {{email.emailAddress}} 
{{/each}} 

Это должно работать:

{{#each emails}} 
    {{this.emailAddress}} 
{{/each}} 

А также, ваша модель свойство называется emailAddress и не email_address.

Надеюсь, это поможет.

+0

Спасибо. Попробовал, и мне все равно не повезло. Я думаю, мне нужно немного изучить JSON. – user2580174

+0

Этот ответ дал мне дорогу, но я должен был включить электронные письма в результат из первоначальной выборки всех контактов. Спасибо за помощь. – user2580174

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