0

このコード ** http://jsfiddle.net/wagenet/ACzaJ/8/ ** は数日前に機能していましたが、今日戻ってきたときに{"error": "Please use POST request"}がスローされます。私は追加ボタンをクリックします また、jsfiddle editor.js は常にこの行で例外をスローします: function stop(){cc = stop; StopIteration をスローします;}; 誰でもこの問題の原因を知っていますか。

どうもありがとう

アップデート

下にスクロールして、ピーターの最初の回答を補足する回答として投稿した多くの更新を確認してください。

4

2 に答える 2

2

ここには多くの問題があります。

  1. 実際には1.0preを使用しているのではなく、masterを使用しています。
  2. App.initialize()マスターでは、イベントリスナーが機能するように呼び出す必要があります
  3. {{action}}ボタンにヘルパーを設定するべきではありません。フォームビューには、フォームでイベントが発生したsubmitときに自動的に呼び出されるメソッドがすでにあります。submit
  4. に問題がありvalueBindingます。を削除すると機能するため、Emberのバグのようですid="new-todo"
  5. これらすべてを解決した後、メタモルフエラーも表示されました。今のところ1.0preを使用する必要があるため、これ以上デバッグは試みませんでした。
于 2012-08-27T23:48:12.703 に答える
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 の結果セクションには表示されませんが、結果セクションにはエラーが表示されず、更新されたフィドルのコンソールに新しいエラーが表示されることです。

不明なエラー: DOM にない Metamorph に対して操作を実行できません。

ついに解決

App.initialize() をコメントアウトして、期待どおりに機能させる必要がありました。Peter の回答のポイント 2 も参照してください。これは実用的なフィドル ** http://jsfiddle.net/ACzaJ/20/です。

上記の作業フィドルに似ていますが、テキストフィールドに id="new-todo" が指定されているため、ember には「id」に影響するバグがないことを意味します。Peter のポイント 4 を参照してください。http://jsfiddle.net/ACzaJ/21/

App.initialize() を使用するとアプリが機能しなくなった理由はわかりませんが、私の推測では、App.initialize は、ルーティング用のルーター、ApplicationController、{{outlet}} をこのフィドルには必要なかったハンドルバー。

最後に、そして完全に解決されました

** http://jsfiddle.net/tQWn8/、 ** http://jsfiddle.net/tQWn8/1/ (2 番目のリンクは指定された ID で動作します)。App.initialize で動作させることができました。しかし、上記の前の段落にリストされているすべてのコンポーネントを宣言し、この App.initialize(router) のようにルーターを App.initialize に渡す必要がありました。これを行わないと、古いエラーが発生します

不明なエラー: DOM にない Metamorph に対して操作を実行できません。

詳細については、emberjs 初期化関数のドキュメントを参照してください。

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

ガイドの Peter Wagenet に感謝します

于 2012-08-30T10:09:43.553 に答える