gpt4 book ai didi

dart - 使用jQuery的Dart JS互操作库

转载 作者:行者123 更新时间:2023-12-03 03:26:54 30 4
gpt4 key购买 nike

我正在尝试使用Dart的package:js为JScrollPane创建一个互操作库,该库由jQuery包装。

这是我到目前为止的内容:

@JS()
library jscrollpane;

import 'dart:html';

import 'package:js/js.dart';

@JS()
@anonymous
abstract class JScrollPaneSettings {
external factory JScrollPaneSettings({bool showArrows});

external bool get showArrows;

external set showArrows(bool value);

}

@JS()
class JScrollPane {
external JScrollPane(Element element, JScrollPaneSettings settings);
}

这是错误:
Not a valid JS object

STACKTRACE:
#0 JsNative.callConstructor (dart:js:1461)
#1 JScrollPane.JScrollPane (package:portal/base/views/scrollbar/jscrollpane.dart_js_interop_patch.dart:13:30)

这是JS库- http://jscrollpane.kelvinluck.com/script/jquery.jscrollpane.js

最佳答案

Element来自dart:html,并且未使用@anonymous注释,您应该改用dynamic关键字。

@JS()
class JScrollPane {
external JScrollPane(dynamic element, JScrollPaneSettings settings);
}

更新

由于它是一个jQuery插件,因此我认为您无法直接访问JScrollPane,因此我从未包装过jQuery插件,但是如果您使用该插件的示例代码:
$('.scroll-pane').jScrollPane();

您可以尝试包装 $函数
@JS('\$')
external jQuery(query);

@JS()
@anonymous
class JScrollPaneElement {
external jScrollPane();
}

void main() {
JScrollPaneElement scrollPane = jQuery('.scroll-pane') as JScrollPaneElement;
scrollPane.jScrollPane();
}

关于dart - 使用jQuery的Dart JS互操作库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43402307/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com