2013-07-18 68 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); 
    } 
}); 

我不知道接下來要嘗試什麼。我在Rails中使用active_model_serializer。我試過嵌入,側載無濟於事。我確信這是簡單的,我錯過了。提前感謝!

回答

0

使用each助手時,建議您更具體地關注要循環的項目以避免出現此類問題。

嘗試以下操作:

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

這也應該工作:

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

而且也,你的模型屬性被稱爲emailAddress,而不是email_address

希望它有幫助。

+0

謝謝。給它一個嘗試,我仍然沒有任何運氣。我想我需要更仔細地檢查JSON。 – user2580174

+0

這個答案讓我想起了自己的方式,但是我必須在最初獲取所有聯繫人的結果中包含電子郵件。感謝您的幫助。 – user2580174