以前在jsfiddle上使用emberjs1.0-pre表单返回"错误":"请使用POST请求"

时间:2012-08-27 23:30:54

标签: ember.js

此代码** http://jsfiddle.net/wagenet/ACzaJ/8/ **几天前正在运行,当我今天返回时,它会抛出 {“错误”:“请使用POST请求”} ,当我点击添加按钮时 此外,jsfiddle editor.js总是在此行引发异常: function stop(){cc = stop;抛出StopIteration;}; 有谁知道这个问题的原因。

非常感谢

更新

请向下滚动以查看我发布的许多更新,以补充彼得的初步答案。

2 个答案:

答案 0 :(得分:2)

这里有很多问题。

  1. 你实际上并没有使用1.0 pre,你正在使用master。
  2. 在master中,您需要调用App.initialize()以使事件侦听器正常工作
  3. 您不应该在按钮上设置{{action}}帮助器。表单视图已经有submit方法,当表单上发生submit事件时,该方法将自动调用。
  4. valueBinding存在问题。它似乎是一个Ember错误,因为它可以删除id="new-todo"
  5. 解决了所有这些后,我也看到了Metamorph错误。我没有尝试进行比这更远的调试,因为你现在可能应该只使用1.0。

答案 1 :(得分:0)

更新1

基于@Peter Wagenet下面的建议,表单现在将条目或输入记录到控制台但是它没有显示在jsfiddle的结果部分而不是jsfiddle结果部分或页面上显示的内容仍然是此错误{“error “:”请使用POST请求“}

** http://jsfiddle.net/ACzaJ/18/

更新2

在这个小提琴http://jsfiddle.net/ACzaJ/19/中,我通过添加event.preventDefault()成功消除了这个错误{“错误”:“请使用POST请求”};到Todos.TodoFormView中的提交操作。这允许我们使用任意视图方法作为动作处理程序。

现有的问题是表单的输入只显示在控制台上,而不是显示在jsfiddle结果部分,虽然结果部分没有显示错误,但是在更新的小提琴的控制台中出现了一个新的错误:< / p>

未捕获错误:无法对不在DOM中的Metamorph执行操作。

终于解决了

我需要注释掉App.initialize()才能使它按预期工作,另见Peter的回答第2点。这是工作小提琴** http://jsfiddle.net/ACzaJ/20/

类似于上面的工作小提琴但是为文本字段指定了id =“new-todo”,所以这意味着ember没有影响'id'的bug,请参阅Peter的第4点。 http://jsfiddle.net/ACzaJ/21/

我不知道为什么使用App.initialize()让应用程序无法正常工作,但我的猜测是,App.initialize可以与路由器等路由器,ApplicationController和ApplicationView等其他部分一起使用{{outlet}在车把里,我不需要这个小提琴。

终于终于彻底解决了

** http://jsfiddle.net/tQWn8/,** http://jsfiddle.net/tQWn8/1/(第二个链接适用于指定的ID)。我能够将它与App.initialize一起使用。但是我必须声明上面前面段落中列出的所有组件并将路由器传递给App.initialize,就像这个App.initialize(路由器)一样。如果你不这样做,那么你将得到旧的错误

未捕获错误:无法对不在DOM中的Metamorph执行操作。

有关更多信息,请参阅emberjs初始化函数的文档:

http://docs.emberjs.com/?#doc=Ember.Application&method=initialize&src=false

非常感谢Peter Wagenet的导游