我有一个以常规方式显示的帖子列表:
App.PostsController = Ember.ArrayController.extend()
{{#each controller}}
{{title}}
{{body}}
{{/each}}
现在我试图添加投票功能。所以我尝试将它添加到PostController并在模板中引用它,如下所示:
App.PostsController = Ember.ArrayController.extend(
itemController: 'post'
)
App.PostController = Ember.Controller.extend(
upvote: ->
# some code to upvote
)
{{#each controller}} # Note, also tried each post in controller
{{title}}
{{body}}
<a {{action upvote}}>Upvote</a>
{{/each}}
然而,这似乎完全破坏了现有的模板。 HTML和CSS都已读入,我可以看到json仍在从服务器返回,但内容不再显示。似乎添加itemController会破坏与ArrayController的绑定。
我觉得我错过了一个必不可少的步骤,但我不确定它是什么,API指南也没有提供任何额外的指示。
答案 0 :(得分:0)
我想如果你不需要itemController
(因为它没有定义)你应该删除它,upvote
事件应该被PostsController
捕获。
修改强>
你的评论让我发现你有一个错字,它应该是:
App.PostController = Ember.Controller.extend(
upvote: ->
# some code to upvote
希望它有所帮助。
答案 1 :(得分:0)
问题是我将PostController定义为常规Controller而不是ObjectController,因此它没有代理对底层模型的调用。
App.PostController = Ember.ObjectController.extend(
upvote: ->
# some code to upvote
)