此代码** http://jsfiddle.net/wagenet/ACzaJ/8/ **几天前正在运行,当我今天返回时,它会抛出 {“错误”:“请使用POST请求”} ,当我点击添加按钮时 此外,jsfiddle editor.js总是在此行引发异常: function stop(){cc = stop;抛出StopIteration;}; 有谁知道这个问题的原因。
非常感谢
更新
请向下滚动以查看我发布的许多更新,以补充彼得的初步答案。
答案 0 :(得分:2)
这里有很多问题。
App.initialize()
以使事件侦听器正常工作{{action}}
帮助器。表单视图已经有submit
方法,当表单上发生submit
事件时,该方法将自动调用。valueBinding
存在问题。它似乎是一个Ember错误,因为它可以删除id="new-todo"
。答案 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的导游