http://rectangleworld.com/demos/SimpleDragging/SimpleDragging'a benzer basit bir tuval sürükle bırak uygulaması yapıyorum. Fareevent dinleyicileri için @Hostlistener kullanıyorum çünkü benim için daha basit bir sözdizimi var ve çalışıyor. Renderer.listen ile bunu başarmanın başka bir yolu var. Ama bunu hostlistener üzerinden kullanmaya karar veremem. @HostListener
ve Renderer.listen
arasında hangisinin daha iyi olduğunu anlatabilir ve söyleyebilir misiniz?@HostListener ve Renderer.listen arasında hangisi daha iyi?
cevap
Cevabım en iyisi olmayabilir ama elimde ne var. o Renderer.listen()
gelince
Renderer.listen()
Eğer algılamak istiyorum Element
ardından Event
dinlemek (click
, keydown
, keyup
vb geçmesi gerekiyor) ve son olarak,numaralı telefondan numaralı telefonu arayın.fonksiyonu (*):
listen(renderElement: any, name: string, callback: Function): Function {
return this._rootRenderer.eventManager.addEventListener(renderElement, name, decoratePreventDefault(callback));
}
Yani sorun artık sadece belirtilerek olacağını Element
(kolay) ama insanlar genellikle güvenlik riskiAngular Documentation göre bugüne kullanmadan önce mutlaka bir elementRef.nativeElement
kullanın !. Başka bir problem (gerçekten olmayacak), Renderer
sınıfının deneysel (Check its Documentation), RC'de çalışmak için kullanılan setText()
ile bir problemle karşı karşıya olduğudur, ancak şimdi değil .. bu yüzden Renderer
işlevlerini kullanmadan önce test edin. aaaaaaand bittiğinde, olayı el ile çözmeniz gerekir !, Check this answer for more.
Ancak, temel amacı herhangi bir ortamda (Web, Düğüm, Mobiles, .et) öğelerin bir kod tabanı ile oluşturulmasından dolayı Renderer
durumundan haberdar olurdum. gelecek.
@HostListener()
HostListener
büyük dekoratör ve yalnızca olay ve geri arama işlevine iletilen (bunun altında işlevine) değerini ayarlamak gerekir nasıl Angular2 typescript ile çalışır harika gösteriyor ve genellikle insanlar sadece [$event]
geçer, böylece işlevin içinde doğrulamalar üzerinde daha fazla kontrole sahip olabilirsiniz ve 'u ayarlamaya gerek yoktur.dinler çünkü olaylara bir delegation
yapıyor ve DOM
ve uygulamanız güvende olacak. Ayrıca, olayları çözmenize de gerek yok, Angular bunu sizin için yapacak.
Check this article for a working example
cevabım yardım, hala çok bazı şeyler değişebilir gelişmektedir Açısal hatırlamak Umut.
Referanslar:
*: Hacking Angular2: Binding Multiple DOM Events by Sean T. Larkin
- 1. Kullanıcı, Parse, Firebase ve AWS Cognito arasında hangisi daha iyi?
- 2. TR1 - Hangisi daha iyi?
- 3. Hangisi daha iyi seçmeli?
- 4. Slate - Swagger - Hangisi daha iyi ve daha fazla seçenek var?
- 5. Hangisi daha iyi? Bu kod örneğinde özel
- 6. dk veya gzip, hangisi daha iyi?
- 7. MAX vs Top 1 - hangisi daha iyi?
- 8. CSS, yüzde veya piksellerde hangisi daha iyi?
- 9. Laravel - Yanıt :: veya response() - hangisi daha iyi
- 10. Hangisi daha iyi? mysql LIKE veya REGEXP?
- 11. Bunun yerine Tetikleyici veya Hesaplanan Sütun mu? Hangisi daha iyi?
- 12. Döküm (int?) Null vs new int?() - Hangisi daha iyi?
- 13. hangisi daha iyi "hedef, kaynak" veya "kaynak, hedef"?
- 14. Kullanılacak daha iyi seçenek hangisi: localStorage(), window.localStorage() veya document.localStorage()?
- 15. Hangisi daha iyi: açık mı yoksa anlamsız get()?
- 16. Bu yaklaşımlardan hangisi daha iyi veya aynı mı?
- 17. Daha iyi bir yöntem, daha hızlı bir şekilde sorgulamak için daha iyi bir yoldur.
- 18. Web sitesi projeleri vs Web Uygulaması - hangisi daha iyi?
- 19. Hangisi daha iyi ng-view veya ui-view?
- 20. Debounce @HostListener olayı
- 21. hangisi?
- 22. arasında, daha önce dize katılın ve
- 23. Hangisi daha hızlı görünüm veya alt sorgudır?
- 24. Hibernate Criteria vs HQL: hangisi daha hızlı?
- 25. Büyüme oranlarından hangisi (log * n) ve log * (log n) hangisi daha hızlıdır?
- 26. Dize enterpolasyonu ve string.format'tan hangisi performans açısından daha iyidir?
- 27. GraniteDS vs BlazeDS hangisi diğerinden daha fazla?
- 28. VBS vs PowerShell: Hangisi daha hafif?
- 29. en iyi dizi_search veya in_array hangisi?
- 30. Piksel ve Nesne Takibi'ne Erişim: Emgu CV veya Aforge.Net? hangisi daha hızlı ve daha kolay?
'nativeElement' Render2 ile birlikte kullanıldığında bir sorun (aksi güvenlik ya da değil). Bağlandığınız Açısal Dokümanlar sayfasındaki uyarının kalanına bakın. – TimTheEnchanter