【问题标题】:Issue building project with JavaScript APIs使用 JavaScript API 构建项目的问题
【发布时间】:2019-03-15 11:25:08
【问题描述】:

每当我使用--release 选项为我的项目提供服务,或者我构建它并在网页上运行它时,我都会收到此错误控制台,并且某些功能将无法使用,所有这些都使用dartdevc 编译器功能正常。

例如,当我单击按钮时会发生这种情况:

jquery-3.3.1.slim.min.js:2 Uncaught TypeError: ((w.event.special[a.origType] || {}).handle || a.handler).apply is not a function
    at HTMLDivElement.dispatch (jquery-3.3.1.slim.min.js:2)
    at HTMLDivElement.v.handle (jquery-3.3.1.slim.min.js:2)
    at Object.trigger (jquery-3.3.1.slim.min.js:2)
    at HTMLDivElement.<anonymous> (jquery-3.3.1.slim.min.js:2)
    at Function.each (jquery-3.3.1.slim.min.js:2)
    at w.fn.init.each (jquery-3.3.1.slim.min.js:2)
    at w.fn.init.trigger (jquery-3.3.1.slim.min.js:2)
    at r.t.show (modal.js:117)
    at HTMLDivElement.<anonymous> (modal.js:515)
    at Function.each (jquery-3.3.1.slim.min.js:2)
dispatch @ jquery-3.3.1.slim.min.js:2
v.handle @ jquery-3.3.1.slim.min.js:2
trigger @ jquery-3.3.1.slim.min.js:2
(anonymous) @ jquery-3.3.1.slim.min.js:2
each @ jquery-3.3.1.slim.min.js:2
each @ jquery-3.3.1.slim.min.js:2
trigger @ jquery-3.3.1.slim.min.js:2
t.show @ modal.js:117
(anonymous) @ modal.js:515
each @ jquery-3.3.1.slim.min.js:2
each @ jquery-3.3.1.slim.min.js:2
r._jQueryInterface @ modal.js:498
cr @ index.dart.js:316
J.h4 @ index.dart.js:6202
dart.nN @ index.dart.js:6096
$1 @ index.dart.js:4961
m6 @ index.dart.js:980
(anonymous) @ index.dart.js:989

这些是我从 Dart 调用的 js API:

@JS()
library js_helper;

import 'package:js/js.dart';

@anonymous
@JS()
class SnackbarParams {
  external factory SnackbarParams({String text, String pos, String backgroundColor});

  external String get text;
  external String get pos;
  external String get backgroundColor;

}

@JS('Snackbar')
class Snackbar{
  external static void show(SnackbarParams obj);
}

@JS('\$')
external dynamic jQuery(query);

@JS()
@anonymous
class ModalElement {

  external dynamic modal(String call);
  external dynamic on(String event, Function callback);

}

@JS()
@anonymous
class jFormElement {
  external dynamic serialize();
}

这应该是导致此错误的代码: (jQuery('#loginModal') as ModalElement).modal('show');

【问题讨论】:

    标签: dart dart2js dart-js-interop


    【解决方案1】:

    最后,问题出在on方法中,我需要将allowInterop添加到Function

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-02
      • 2014-02-25
      • 1970-01-01
      • 2012-07-18
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多