2014-11-02 37 views
1

我想弄清楚如何在我的燈具數據中訪問嵌套模型。我可以在{{each}}循環中完美訪問名稱img_url等,但如果我嘗試執行{{address.street}},則會得到[Object,object]。下面的模式:如何在Ember.js中包含嵌套模型燈具

App.Test = DS.Model.extend({ 
    name: attr(), 
    img_url: attr(), 
    description: attr(), 
    address: { 
    street: attr(), 
    number: attr(), 
    zip_code: attr(), 
    city: attr() 
    } 
}); 
+0

你試過登錄到控制檯這些對象,所以你知道哪些屬性它包含哪些內容? – 2014-11-02 21:46:56

+0

我做到了。這是我回來的:'Ember Inspector($ E):Object {id:「3」,name:「Test」,img_url:「url」,描述:「這是一個測試」,地址:Object}' – 2014-11-02 21:50:55

+0

嘗試使用console.log地址屬性,以便可以看到如何訪問子屬性。然後如果有更多的對象也嘗試記錄這些對象。也許你會發現財產address.street.value等如果你可以在這裏設置演示 - http://emberjs.jsbin.com/ – 2014-11-02 21:53:12

回答

1

您應該創建一個單獨的模型類型Address並創建兩個模型之間的關係。

App.Test = DS.Model.extend({ 
    name: attr(), 
    img_url: attr(), 
    description: attr(), 
    address: belongsTo('address', {async:true}) 
}); 

App.Address = DS.Model.extend({ 
    street: attr(), 
    number: attr(), 
    zip_code: attr(), 
    city: attr() 
}); 

例子:http://emberjs.jsbin.com/vuhaga/2/edit

+0

我想過這樣做,但作爲模型總是鏈接,我沒有真的明白爲什麼它應該是兩個獨立的模型。在這個Ember教程視頻中,他還使用了author.name https://www.youtube.com/watch?v=1QHrlFlaXdI - 似乎無法在該燼網站的文檔中找到任何官方文檔。 – 2014-11-02 22:04:10

+0

他沒有使用Ember Data,Ember和Ember Data是兩種不同的產品。沒有Ember Data的情況下,Ember可以很好地工作。 http://stackoverflow.com/questions/24408892/ember-without-ember-data/24411550#24411550,即使有這種關係設置,你仍然可以做'test.address.street' – Kingpin2k 2014-11-03 02:07:20

+0

我在上面包含一個例子 – Kingpin2k 2014-11-03 02:20:13