Emberjs形成,提交函数和动作助手错误

时间:2012-08-16 23:21:12

标签: ember.js

http://jsfiddle.net/ACzaJ/7/  这个小提琴有以下问题:

  1. 当您点击:'清除完成按钮'时,您将收到错误:

    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>
    
  2. 我正在尝试两种不同的提交功能,每次评论一次以尝试另一种:

    2a上。当我点击“添加”按钮时,当通过注释掉第二个提交功能使用第一个提交功能时,不会添加任何新的待办事项并且没有错误。这没什么事情发生的。

    2B。当我注释掉第一个提交功能并使用第二个提交功能时,单击添加,将引发以下错误:

    Uncaught TypeError: Cannot call method 'createTodo' of null.
    
  3. 如何制作此待办事项应用,运行并添加和清除待办事项。感谢

    更新

    问题1现在由@pauldechov解决。但问题2a和2b 尚未解决。 jsfiddle链接也已更新。谢谢@pauldechov。

    更新2

    彼得此后提供的解决方案存在问题,彼得在这里解决了新问题:

    Previously working emberjs1.0-pre form on jsfiddle returns "error": "Please use POST request"

1 个答案:

答案 0 :(得分:5)

首先,看起来您已经为TodoView id添加了空格。此id必须是有效的HTML ID,因此肯定会导致一些问题。其次,submit函数正在查找TodoFormView实例的值。但是,该值是在TodoView实例上定义的。您需要在两者之间建立绑定。

我现在通过摆脱TodoView并使用标准TextField简化了一些事情。此外,您的remaining功能需要更改为使用引号而不是get('length')get(length)。另外,复选框API已从一些较旧的示例中更改,请参阅http://docs.emberjs.com/#doc=Ember.Checkbox

这是更新的小提琴:http://jsfiddle.net/wagenet/ACzaJ/8/