繁体   English   中英

从Dart调用js

[英]Calling js from Dart

我该如何从Dart调用这样的代码?

$('.datepicker').datepicker();

我知道我可以使用“ package:js / js.dart”包来调用函数,就像这样

@JS("Plotly.plot")
external plot(DivElement element, List<PlotData> plotData, Margin margin);

...但是在元素上调用函数?

并不是100%清楚您要问的是什么,但是我您是在问如何在JS对象上调用任意方法。 做到这一点并非易事(最好编写类型化的接口)。 您有两种选择:

  1. 使用package:js/js_util.dart并调用callMethod
  2. 为您想要的内容编写一个@JS() class

首先,您可以编写以下内容:

import 'package:js/js_util.dart' as js;

void openDatePicker(Object elements) {
  js.callMethod(elements, 'datepicker', []);
}

...并非超级优雅(或打字准确),但可以。 我只建议您在确实只需要调用一个方法并且不希望调用其他方法或传递复杂参数的情况下执行此操作。

对于后者,您仍然可以使用@JS()技术。 例如:

@JS()
external JQueryElements $(String selector);

@JS()
// Because this doesn't "really" align to a class in the JS/DOM.
@anonymous
abstract class JQueryElements {
  @JS()
  external void datepicker();
}

...,您可以像这样使用它:

void main() {
  $('.datepicker').datepicker();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM