2015-12-20 95 views
0

我有一個模型,例如「讀者」,我想爲此對象添加多個「書籍」模型。餘燼如何添加多個模型

讀者模型中定義的書場是這樣的:

books: DS.hasMany('book', {async: true}), 

當我創建讀者我要一些書模型添加到它。在模板中,我可以列出這樣的書:

{{#each books as |book index|}} 
    {{book.name}}, {{index}} <br> 
{{/each}} 

<button {{action 'addReader'}}>add</button><br> 

我該如何將書籍傳遞給addReader函數?

回答

2

如果您想要將參數傳遞給動作,則與鏈接相同。所以在這裏即時通訊遍歷類的陣列與關注取消關注的功能有點像嘰嘰喳喳:

{{action 'unfollow' category}} 

你的情況這將是

{{action 'addReader' books}} 

bookss我認爲你有一個錯字那裏。

然後在您的控制器或組件:

addReader:function(books) { 
    console.log('Saving books',books); 
} 
+0

感謝回覆,我在我的問題固定的錯字,它不是在代碼中錯字,就在這裏。當我將這樣的書傳遞給動作處理程序並打印日誌時,我得到了:Class {query:Object,store:Class,manager:Class,isLoaded:true,meta:ember $ data $ lib $ system $ empty $ object $$ (...)獲取內容:GETTER_FUNCTION(...)獲取內容:GETTER_FUNCTION()獲得內容:GETTER_FUNCTION()獲取內容:GETTER_FUNCTION(value)__ ember1450691277048:「ember399」__ ember_meta__:Object__firebaseCleanup:()__ nextSuper:undefinedcontent: ()設置內容:SETTER_FUNCTION(值)isLoaded:...等等。我可以用這個類做什麼?我如何在那裏得到書? – pera

+0

我試圖在{{#each}}循環中添加我的按鈕,並且我傳遞了單個圖書對象,並且我可以在動作處理程序中讀取它,但是如果我通過所有書籍,如何在js代碼中遍歷它們,如{ {#each}}在模板中做什麼? – pera

+0

所以你的''''''''將被包裹在一個燼數組中,這就是爲什麼你在控制檯中打印時看到所有這些getter setter ember_meta。看看這個http://emberjs.com/api/classes/Ember.Array.html你可以迭代forEach或使用其他數組方法提供符合您的需要 – jstuartmilne

相關問題