0
有如下型号相同的控制器实例:使用的产生由“控制”帮手
App.Post = DS.Model.extend
title: DS.attr 'string'
comments: DS.hasMany 'App.Comment'
App.Comment = DS.Model.extend
body: DS.attr 'string'
post: DS.belongsTo 'App.Post'
我展示的所有帖子,并在我的职位模板的所有帖子评论:
{{#each post in controller}}
{{post.title}}
{{#each comment in post.comments itemController="comment"}}
{{partial 'comment' comment}}
{{this}}
{{/each}}
{{/each}}
这里使用了控制助手,这样我就可以得到每个评论的控制器。
我有一个评论控制器谁是模型是从帖子中取得的评论的平面阵列。
App.CommentsController = Em.ArrayController.extend
itemController: 'comment'
needs: 'posts'
postsBinding: 'controllers.posts'
comments: (->
comments = []
@get('posts').forEach (post) ->
post.get('comments').forEach (comment) ->
comments.pushObject comment
console.log comments
@set 'model', comments
).observes('posts.length')
App.CommentController = Em.ObjectController.extend()
该控制器做装饰与预期的CommentController每个记录,但它似乎是创造新的控制器实例,而不是重新使用在模板中呈现的控制器。有没有找到相同的实例的方法?
嗨马克,谢谢你的回答。我实际上仍然得到重复的控制器 - 可能是我的'评论'方法创造这些重复,而不是找到现有的实例? – tigrish 2013-03-14 17:38:08
我在'comments'方法中没有看到任何可以做到的事情。也许我不明白你想做什么。你说“它似乎在创建新的控制器实例,而不是重新使用在模板中呈现的控制器”。什么时候创建新的控制器实例。你怎么知道的? – 2013-03-14 19:24:37
好的,我刚刚添加了关于我如何登录每个实例的代码 - 基本上只是将模板中的对象或通过“console.log”输出。我得到CommentController实例,但它们在模板中与CommentsController中的不一样。 从CommentsController创建的实例绑定到'posts'数组,这是一个用ember-data获取的集合。 – tigrish 2013-03-15 13:21:34