ember.js - Emberjs 表单、提交函数和操作帮助程序错误

标签 ember.js

http://jsfiddle.net/ACzaJ/7/ 该 fiddle 存在以下问题:

  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.
    

我怎样才能制作这个待办事项应用程序,运行并添加和清除待办事项。谢谢

更新

问题 1 现已由 @pauldechov 解决。但问题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,从而简化了一些事情。此外,您的 remain 函数需要更改为使用引号而不是 get(length) 执行 get('length')。另外,复选框 API 与一些旧示例相比已发生变化,请参阅 http://docs.emberjs.com/#doc=Ember.Checkbox .

这是更新后的 fiddle :http://jsfiddle.net/wagenet/ACzaJ/8/

关于ember.js - Emberjs 表单、提交函数和操作帮助程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11996794/

相关文章:

未找到 Ember.js every-in 帮助程序

ember.js - 从 jQuery 对象创建 Ember View

javascript - 为什么这些记录没有存储在缓存中?

Ember.js:从嵌套路由调用 ApplicationRoute 的操作

ember.js - 直接在 Controller 上实现的 Action 处理程序已被弃用 - 如何纠正这个问题?

javascript - store.push 没有反射(reflect)在带有 ember-cli-pagination 的模板上

routes - model 和 setupController 钩子(Hook)与未定义的模型

ember.js - 如何确保 Ember Data 从存储中删除缓存?

javascript - Ember-Data 中的多个多对多关系

javascript - ember 根据经过身份验证的用户设置用户对象