3

我目前正在调用一个名为Bootstrap Context Menu的基于 jQuery 的插件。

为了调用它,我需要使用Javascript Interop library。但是当我从中调用 jQuery 方法时,我收到以下警告:

The method 'jQuery' is not defined for the class 'Proxy'

代码片段:

  js.scoped(() {
    js.context.jQuery('#canvas').contextmenu();
  });

这在一些 dart/js-interop 更新之前没有发生。摆脱此警告的正确方法是什么?

4

1 回答 1

4

您收到此警告是因为新的分析器似乎不知道当类定义 noSuchMethod() 时选项报告“无此类成员”警告(报告于http://dartbug.com/10016)。如果您切换回旧版分析器,则不应再看到此警告。

也就是说,如果你想使用新的分析器并摆脱这个警告,你可以使用这样的数组表示法:

js.context["jQuery"]('#canvas')["contextmenu"]();

但 :

  • 对于方法调用,它的可读性特别差。
  • 方法调用的效率较低,因为完成了 2 个操作(f = js.context["jQuery"]后跟f('#canvas'))而不是 1 个(js.context.jQuery('#canvas')
于 2013-04-17T09:55:40.233 回答