2015-12-20 42 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