Ich muss auf ein JavaScript-Objekt this
von einer Dart-Funktion zugreifen. Ich füge effektiv eine neue Methode zu einem JavaScript-Objekt, über Dart-JS-Interop. Ich muss auf Eigenschaften zugreifen, die sich auf dem JavaScript-Objekt von der Methode befinden, die in Dart definiert wird.Wie kann ich `this` von JavaScript über JS - Dart interop aufrufen?
6
A
Antwort
5
Der Callback
Konstruktor kann die this
von JavaScript übergeben. Nach dem API docs for Callback:
new Callback.many(Function f, {bool withThis: false})
new Callback.once(Function f, {bool withThis: false})
Hier ist ein Beispiel:
Dart-Code:
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']);
}
Beachten Sie die Verwendung von withThis: true
wenn die Callback-Erstellung. Die this
von JavaScript wird als das erste Argument der Rückruffunktion übergeben. In diesem Fall gebe ich einen Namen jsThis
.
JavaScript-Code:
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
});
Verwandte Themen
- 1. Dart js Interop mit D3
- 2. JavaScript-Interop in Dart automatisieren
- 3. wie mit verschachtelten Objekten von js in Dart (neue Dart-Js-Interop)
- 4. Mit js-interop kann ich Javascript Array und Objekt in native Dart Map konvertieren.
- 5. Dart JavaScript Interop Callbacks mit jQuery
- 6. Aufruf Javascript von Dart
- 7. Kann ich eine Knotenbibliothek in einem Dart-Server verwenden?
- 8. Ich kann API nicht über JavaScript von localhost aufrufen
- 9. Wie kann ich eine statische Methode für ein .NET-Objekt über COM-Interop aufrufen?
- 10. Aufruf Dart-Code von Javascript
- 11. JavaScript direkt über TypeScript aufrufen
- 12. Kann Dart lesbare Javascript-Bibliotheken produzieren?
- 13. Wie definiere ich `this` in Javascript?
- 14. kann ich eine js-Datei von einer anderen aufrufen.
- 15. Kann ich t() anstelle von I18n.t() in Javascript aufrufen?
- 16. Wie kann ich C# zum Interop mit Javascript bekommen?
- 17. Zurückgeben eines Arrays von JS nach C# mit COM-Interop
- 18. Wie kann ich jquery Funktion von JavaScript-Code aufrufen?
- 19. Wie kann ich Javascript-Methode von meinem aspx.cs-Datei aufrufen
- 20. Wie kann man ein Javascript über das Wicket-Framework aufrufen?
- 21. Kann ich den Kontext von Javascript "this" ändern?
- 22. Wie native Javascript-Methoden von Opal aufrufen?
- 23. Javascript 'this'
- 24. Wie kann ich mit vorhandenen JS-Objekten interagieren?
- 25. Wie kann ich Pufferüberlauf aufrufen?
- 26. Javascript 'this' versus Objektname
- 27. Wie kann ich ein Dart-Programm "schlafen"
- 28. So rufen Sie eine Dart-Funktion aus Javascript auf?
- 29. Wie funktioniert `this` in Javascript?
- 30. Wie funktioniert der Dart-Javascript-Compiler (dart2js)?