簡體   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