Bir JavaScript nesnesinin this
bir Dart işlevinden erişmesi gerekiyor. Dart-JS interop ile bir JavaScript nesnesine yeni bir yöntem ekliyorum. Dart'ta tanımlanan yöntemden JavaScript nesnesindeki özelliklere erişmem gerekiyor.Bu 'j`den JavaScript’e nasıl erişebilirim JS - Dart interop?
6
A
cevap
5
Callback
yapıcısı, this
'u JavaScript'ten geçirebilir. API docs for Callback göre:
dart kod:
import 'dart:html';
import 'package:js/js.dart' as js;
void main() {
var greeter = js.context['greeter'];
var msg = greeter['greet']('Bob');
greeter['doCoolStuff'] = new js.Callback.many(doCoolStuff, withThis: true);
}
doCoolStuff(jsThis) {
print(jsThis['msg']);
}
Bildirim withThis: true
kullanımı Geri arama oluşturma
new Callback.many(Function f, {bool withThis: false})
new Callback.once(Function f, {bool withThis: false})
Burada bir örnektir. JavaScript'ten gelen this
, geri arama işlevinin ilk argümanı olarak geçmiştir. Bu durumda, ona jsThis
adını verdim.
JavaScript kodu:
function Greeter() {
this.msg = 'hello';
var that = this;
document.getElementById('clickme').addEventListener('click', function() {
that.doCoolStuff();
});
}
Greeter.prototype.greet = function(name) {
return this.msg + ' ' + name;
}
var greeter = new Greeter();
document.getElementById('clickme').addEventListener('click', function() {
greeter.doCoolStuff(); // comes from Dart land
});
İlgili konular
- 1. Dart içinde JavaScript Interop otomatikleştirin
- 2. js-interop öğesini kullanma javascript Array ve Object öğelerini native dart Map'e nasıl dönüştürebilirim.
- 3. Dart sunucusunda Düğüm kitaplığı kullanabilir miyim?
- 4. Bu yardımcı işlevde üretime nasıl erişebilirim?
- 5. j Eşdeğeri j içinde NumPy
- 6. COM Interop
- 7. Dart
- 8. Bir açısal js denetleyicisinin "bu" ına, bir söz yönteminden nasıl erişebilirim?
- 9. COM-Interop
- 10. sqlworkbench/J için yığın boyutunu artırın/J
- 11. Dart programını nasıl "uyuyabilirim"
- 12. Dart sınıfını nasıl adlandırırsınız?
- 13. COM interop
- 14. J 3.1.2
- 15. Word Interop işleme nasıl hızlandırılır?
- 16. iOS'ta pusulaya nasıl erişebilirim?
- 17. Polimer dart uygulaması nasıl dağıtılır
- 18. cljs Om interop?
- 19. Dart bir sunucuda nasıl çalıştırılır?
- 20. Dart için kütüphaneler nasıl oluşturulur?
- 21. clojure/scala interop?
- 22. Mono altında çalışmak için bu Win32 Interop kodunu alma?
- 23. DizinlenmişDB'ye nasıl senkronize olarak erişebilirim?
- 24. UISegmentedControl'e UICollectionViewController başlığına nasıl erişebilirim?
- 25. UPnP cihazının servislerine nasıl erişebilirim?
- 26. Dart Dilinde Console.log
- 27. Outlook Interop, EntryId değişikliğinin nasıl izlenir
- 28. package.json config bölümüne nasıl erişebilirim?
- 29. asp.net'de içsel bilgilere nasıl erişebilirim
- 30. Hatırlatıcılara nasıl programatik olarak erişebilirim?