Tôi cần truy cập vào đối tượng JavaScript this
từ một chức năng Dart. Tôi đang thêm một phương thức mới vào đối tượng JavaScript một cách hiệu quả, thông qua tương tác Dart-JS. Tôi cần truy cập các thuộc tính có trên đối tượng JavaScript từ phương thức được xác định trong Dart.Làm cách nào để truy cập 'this` từ JavaScript qua JS - Dart interop?
6
A
Trả lời
5
Nhà xây dựng Callback
có thể vượt qua this
từ JavaScript. Theo API docs for Callback:
new Callback.many(Function f, {bool withThis: false})
new Callback.once(Function f, {bool withThis: false})
Dưới đây là một ví dụ:
đangDart:
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']);
}
Thông báo việc sử dụng các withThis: true
khi tạo Callback. Các this
từ JavaScript được truyền vào như là đối số đầu tiên cho hàm gọi lại. Trong trường hợp này, tôi đặt tên cho nó là jsThis
.
Mã JavaScript:
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
});
Các vấn đề liên quan
- 1. Dart js interop với D3
- 2. Làm cách nào để truy cập ViewBag từ JS
- 3. gọi javascript từ Dart
- 4. Làm thế nào để truy cập vào lớp Java bên trong tĩnh thông qua Clojure interop?
- 5. Truy cập biến từ mã đằng sau thông qua javascript
- 6. JavaScript: Truy cập Biến Defined trong External .js tập tin
- 7. Làm cách nào để truy cập bộ định tuyến toàn cầu trong js đường trục?
- 8. Làm cách nào để truy cập các trường tiêu đề yêu cầu HTTP qua JavaScript?
- 9. Truy cập MongoDB trực tiếp qua JavaScript
- 10. Làm thế nào để truy cập vào webcam bằng javascript
- 11. Làm cách nào để rút ngắn mã JavaScript được biên soạn từ Dart Editor?
- 12. Cách truy cập vào micrô trong JS?
- 13. Làm cách nào để truy cập Wikipedia từ R?
- 14. Làm cách nào để truy cập iframe từ CasperJS?
- 15. Làm cách nào để truy cập SQLite từ VBA?
- 16. Làm cách nào để dừng Dart .forEach()?
- 17. Tôi làm cách nào để truy cập phiên trong webmethod?
- 18. Làm thế nào để truy cập webcam với Javascript
- 19. Truy cập vào biến JavaScript từ PHP
- 20. Làm thế nào để truy cập vào parentNode của một lựa chọn d3.js?
- 21. JavaScript "me" = "this", tại sao?
- 22. ClojureScript interop
- 23. Làm cách nào để hạn chế quyền truy cập JSON?
- 24. Làm cách nào để truy xuất ISP của khách truy cập thông qua PHP?
- 25. Truy cập Javascript TR từ TD
- 26. Làm cách nào để JSF 2.0 bao gồm JS là 'application/javascript' thay vì 'text/javascript'
- 27. Cách truy cập giá trị của một ASPxTextBox từ JavaScript
- 28. Làm cách nào để nhận JSON từ PHP sang JS?
- 29. Tôi làm cách nào để truy cập phạm vi địa phương động trong javascript?
- 30. Làm cách nào để chạy Dart trên máy chủ?