http://jsfiddle.net/ACzaJ/7/
这个小提琴有以下问题:
Uncaught Error: assertion failed: Target <Ember.View:ember116> does not have action clearCompletedTodos
And this line generates that error:
<button {{action clearCompletedTodos target="Todos.todosController" }} >
Clear Completed Todos
</button>
2a。当我单击“添加”按钮时,在通过注释掉第二个提交功能而使用第一个提交功能时,不会添加新的待办事项,也不会出错。那什么都没发生。
2b。当我注释掉第一个提交功能并使用第二个提交功能时,单击添加,将引发以下错误:
Uncaught TypeError: Cannot call method 'createTodo' of null.
我如何制作此待办事项应用,运行并添加和清除待办事项。谢谢
更新
现在,@ pauldechov解决了问题1。但是问题2a和2b 尚未解决。 jsfiddle链接也已更新。谢谢@pauldechov。
更新2
Peter稍后在此处提供的解决方案出现了问题,Peter在这里解决了新问题:
Previously working emberjs1.0-pre form on jsfiddle returns "error": "Please use POST request"
最佳答案
首先,您好像给了TodoView
一个带有空格的id
。此id
必须是有效的HTML ID,这样肯定会引起一些问题。其次,submit
函数在TodoFormView
实例上寻找一个值。但是,该值是在TodoView
实例上定义的。您需要在两者之间建立绑定(bind)。
通过暂时摆脱TodoView
并仅使用标准TextField
,我已经简化了一些事情。另外,您的remaining
函数需要更改为用引号而不是get('length')
进行get(length)
。另外,复选框API与一些较旧的示例有所不同,请参见http://docs.emberjs.com/#doc=Ember.Checkbox。
这是更新的小提琴:http://jsfiddle.net/wagenet/ACzaJ/8/