所以我的模型设置如下:
App.Post = DS.Model.extend
comments: DS.hasMany 'App.Comment'
App.Comment = DS.Model.extend
post: DS.belongsTo 'App.Post'
我正在尝试创建一个包含所有帖子和所有评论的视图,但我需要修饰评论对象。
这是我想做的,但无济于事:
<ul>
{{#each post in controller}}
<li>{{post.title}}</li>
<ol>
{{#each comment in post.comments itemController="comment"}}
<li>{{comment.body}}</li>
{{/each}}
</ol>
{{/each}}
</ul>
模板根本找不到App.CommentController
中定义的属性。
我怀疑Ember.OrderedSet
没有实现itemController
参数 - 是否有解决方法?
答案 0 :(得分:2)
您需要使用新的expiremental控制标记。这将加载指定类型的视图和控制器:
<ul>
{{#each post in controller}}
<li>{{post.title}}</li>
<ol>
{{#each comment in post.comments}}
{{ control "comment" comment }}
{{/each}}
</ol>
{{/each}}
</ul>
您需要先启用此过期功能。在加载ember之前放这个:
<script type='application/javascript'>
ENV = {
EXPERIMENTAL_CONTROL_HELPER: true
};
</script>
此外,您需要指定注释的控制器不应该是单例,否则将只为所有注释视图实例化一个控制器:
// this is needed to use control handlebars template properly per
// https://github.com/emberjs/ember.js/issues/1990
App.register('controller:comment', App.CommentController, {singleton: false });