我目前正在阅读Ember.js入门指南,但我正在使用v1.0.0-rc.6.3而不是指南中提到的RC3.1。
现在我到达了关于实现单个待办事项的编辑的章节,但是指南中实现的{{action}}处理程序似乎不起作用,所以我的第一个假设是事件的行为发生了变化。
到目前为止,这是我在JSBin中的代码:http://jsbin.com/ogixej/1/edit
如您所见,当您双击todo项时,控制台中会出现错误:
Uncaught Error: Nothing handled the event 'editTodo'.
你能告诉我改变了我应该如何正确地做到这一点吗?
答案 0 :(得分:2)
由于TodoController
是负责您需要在TodosController
上定义此项目的项目的控制器,如下所示:
Todos.TodosController = Ember.ArrayController.extend({
itemController: 'todo',
...
});
这样就可以正确调用editTodo
函数。在这里工作jsbin。
希望它有所帮助。
答案 1 :(得分:2)
我认识到这应该是一个评论,但我的名声太低了。
虽然@ intuitivePixel的答案是正确的,并且已被接受,但在转换示例(Getting Started Guide - Adding Child Routes)期间,它在后面的示例中并不适用。一旦我将模板分开,我必须在itemController
期间将{{#each}}
属性从控制器移动到模板中,如下所示:
{{#each itemController="todo"}}
...
{{/each}}
如果仔细观察,你可以在Ember的第一个示例块中找到这段代码,但是在周围的叙述中并没有提到它,所以我错过了它。