入力要素に「ng-model」を使用し、その要素をクロム・インスペクタで観察しました。しかし、入力要素のonxxxプロパティ(onchangeを含む)はすべてnullでした。次に、AngularJSはユーザー入力によってトリガされる "onchange"イベントをどのように捕捉できますか?AngularJSは内部的に 'onclick'、 'onchange'のようなイベントをどのようにキャッチしますか?
答えて
は、Chromeのイベントリスナ]タブでは、あなたが標準的なテキスト入力要素(NG-モデルが付属して)を点検し、場合あなたはそれが取り付けられた2人のイベントリスナーを持っていることがわかります。
角度はデフォルトでinput
イベントをリッスンし、ブラウザでサポートされていない場合はchange
イベントに戻ります。
イベントはjQliteのバインドメソッドにバインドされます(完全なjQueryも含まれていない場合は、バインドメソッドが継承されます)。
自分で検査できる入力要素の例は、input [email]ディレクティブのドキュメントページにあります。
Exact line in Angular source (v1.2.0rc1)入力イベントの処理を担当します。
今は完全にクリアです。ありがとうございました! – firia2000
なぜjqueryはval()で入力イベントを発生させませんか?この変更を正しく伝達するにはどうすればよいでしょうか? – tommybananas
@ snowman4415このように:http://stackoverflow.com/a/17110709/1095616 – Stewie
あなたが使用して、任意のDOMノードにイベントリスナーを添付することができます。
node.addEventListener(eventNameの、listenerMethod、useCaptureは)
あなたがにaddEventListenerを使用して、node.onchangeする方法前に割り当てられている間、あなたがする必要がありますイベントリスナーをイベント 'change'に追加するか、 'click'をクリックします。
参照:$destroy
とinput
:https://developer.mozilla.org/en-US/docs/DOM/EventTarget.addEventListener
質問は特にanglejsについてですが、domイベントハンドラではありません –
まあ、AngularJSはまだDOMを使ったjavascriptですか? DOMを使っていくつかのイベントリスナをアタッチすると、角度が分かりませんが、ドキュメント要素にイベントが添付されていて、イベントバブリングを使用してDOMイベントを受け取るターゲットをフィルタリングしているとします。 – KKetch
ベースでは、そうする必要があります。しかし、実際には、あなたが「想定している」ようには機能しません。それは何が変わったのかを見つけるために汚れたチェックモデルを使います。あなたはそれについてもっと読むことができます://stackoverflow.com/questions/9682092/databinding-in-angularjs –
- 1. document.getElementById - onchangeイベントとはどのように動作しますか?
- 2. どのように私はiTunesのイベントをキャッチしますか?
- 3. HTMLの隠しコントロールにはどのようなイベントもありますか? onchangeや何かのように?
- 4. どのように動的にロードされたコントロールのonclickイベントをキャッチできますか?
- 5. jQueryを使用したSELECTのようなonChangeイベント
- 6. 隠しフィールドのonChangeイベントをどのようにトリガーしますか?
- 7. JS変数イベント? onChangeのように?
- 8. サービススタックがオブジェクトを内部的にどのように扱うか?
- 9. はどのようにAngularJs
- 10. JavaScriptは内部的にnull値をどのように保存しますか?
- 11. Pythonはリストを内部的にどのように保存しますか?
- 12. エクスプローラ/ウィンドウのタスクバーはどのように内部的に動作しますか?
- 13. レコードの更新は内部的にどのように動作しますか?
- 14. ASP.NETルーティングはどのように内部的に動作しますか?
- 15. C#eventhandlerは内部的にどのように動作しますか?
- 16. JS Promiseは内部的にどのように機能しますか?
- 17. 可変スワップは内部的にどのように機能しますか?
- 18. Javaシリアル化は内部的にどのように動作しますか?
- 19. ホット展開は内部的にどのように機能しますか?
- 20. BULK INSERTはどのように内部的に動作しますか?
- 21. SQLiteカーソルはどのように内部的に動作しますか?
- 22. 倹約は内部的にどのように機能しますか?
- 23. Linq DataContext.SubmitChanges()は内部的にどのように動作しますか?
- 24. "as"キーワードはどのように内部的に動作しますか?
- 25. fgetsは内部的にどのように機能しますか?
- 26. どのようにしてonClickイベントにループを作成できますか?
- 27. LogParserのようなプログラム/ライブラリを作成しようとしていますが、内部的にはどのように動作しますか?
- 28. SQL ServerはVarcharを内部的にどのように扱いますか?
- 29. printfは内部でどのように動作しますか?
- 30. ジェネリック継承はどのように(内部的に)行われますか?
http://stackoverflow.com/questions/9682092/databinding-in-angularjsをご確認ください。 –
@fastreloadありがとうございました!私はちょうどその記事を読んだが、まだ明らかではない。その記事によると、AngularJSはダーティチェックに$ apply()と$ digest()を使用しています。しかし、誰がその機能を呼んでいますか? 'angular'モジュールは、ポーリングのためにsetInterval()のようなものを使用しますか? – firia2000
'digest'フェーズを開始するいくつかのイベントウォッチャーがあります.Stewieの答えにはいくつかの詳細があります。 –