私はhttp://rectangleworld.com/demos/SimpleDragging/SimpleDraggingに似た単純なキャンバスドラッグアンドドロップアプリケーションを構築しています。私の場合は、シンプルな構文を持っていて動作しているので、mouseeventリスナーの場合は@Hostlistenerを使用しました。 Renderer.listenでそれを達成する別の方法があります。しかし、私はそれをhostlistenerよりも使うことはできません。誰も説明し、@HostListener
とRenderer.listen
の間でどちらが良いか教えてください。@HostListenerとRenderer.listenのどちらが良いですか?
答えて
私の答えは最高ではないかもしれませんが、私が得たものです。その後、
Renderer.listen()
それはRenderer.listen()
に来るとき、あなたが検出したいElement
を渡す必要があり、Event
など(click
、、keyup
、に耳を傾けます)そして最後にコールバックFunction
コードでは、で起こったことがあります機能(*):
listen(renderElement: any, name: string, callback: Function): Function {
return this._rootRenderer.eventManager.addEventListener(renderElement, name, decoratePreventDefault(callback));
}
だから、問題は今ちょうど指定されるだろうElement
(簡単な)が、人々は通常、セキュリティリスクAngular Documentationによると、それを使用する前に、必ずあるelementRef.nativeElement
を使用!もう1つの問題(実際にはありません)は、Renderer
クラスが実験的(Check its Documentation)であることです。setText()
で問題が発生しましたが、これはRCで使用されていましたが、今は使用していません。あなたが完了したら、手動でイベントをバインド解除する必要があります!、Check this answer for more。
しかし、私はRenderer
のステータスを見守っていますが、主な目的は1つのコードベースで任意の環境(Web、Node、Mobiles、.etc)の要素をレンダリングするためです。未来。
@HostListener()
HostListener
は素晴らしいデコレータあると、あなただけのイベントとコールバック関数に渡される(その下の関数)に値を設定する必要があるかAngular2は、活字体で素晴らしい作品を示します通常、人々は単に[$event]
を渡すので、関数内のバリデーションをより詳細に制御することができます。はdocument
をリッスンするので、設定する必要はありません。イベントにdelegation
を実行していて、アクセスしませんDOM
とアプリが保護されます。また、イベントのバインドを解除する必要はありません、角度はあなたのためにそれを行います。
Check this article for a working example
は角度がまだいくつかの物事が変更される可能性がありますので、進化して覚えて、私の答えの助けを願っています。
参考文献:
*:Hacking Angular2: Binding Multiple DOM Events by Sean T. Larkin
- 1. どちらが良いですか?
- 2. どちらが良いですか? toFile
- 3. accdbとmdb。どちらが速い/良いですか?
- 4. InnoDBとMYISAMのどちらが良いですか?
- 5. ベクターとArrayListのどちらが良いですか?
- 6. どちらがより良いです
- 7. どちらが良いjqueryモバイルかphonegap
- 8. どちらが良いですか、コンパイラかインタプリタですか?
- 9. どちらが良いですか?このサンプルコードでプライベート
- 10. どちらの方法を使うのが良いですか
- 11. 色相とアンバリ・ビューの違いは何ですか?どちらが良いか
- 12. DundasとComponentArtのどちらが良いか
- 13. どちらを使うのが良いですか?
- 14. どちらが良いオープンソースですか?angular2のデータグリッド?
- 15. CSS:#id .class VS .classのパフォーマンス。どちらが良いですか?
- 16. どちらが良いですか:mysql_connectまたはmysql_pconnect
- 17. Laravel - レスポンス::レスポンス() - どちらが良いですか
- 18. スレッドまたはJMSどちらが良いですか?
- 19. どちらが良いですか、setEnabledまたはsetUserInteractionEnabled?
- 20. どちらが良い方法ですか?
- 21. どちらが良いですか? Java開発またはWebworks?
- 22. Andorid Java String - どちらが良いですか? "+、toString()、String.valueOf()?
- 23. JSONまたはXML?どちらが良いですか?
- 24. どちらが良いメモリアクセスですか? (C++)
- 25. どちらが良いですか、NagiosまたはSensu?
- 26. Phalcon Freamworkまたはphp7?どちらが良いですか?
- 27. CDN対FTP ..どちらが良いですか
- 28. どちらが良いですか? city.state.idまたはcity.state_id
- 29. PigServerまたはPigRunner?どちらが良いですか?
- 30. C++/CLI vs COM - どちらが良いですか?
Render2で使用している場合、 'nativeElement'が問題(セキュリティまたはそれ以外)ではありません。リンク先のAngular Docsページで、残りの警告を参照してください。 – TimTheEnchanter