如何从 dart 调用名为 `call` 的 JavaScript 函数
How to call a JavaScript function named `call` from dart
有什么方法可以从 Dart 调用名为 call()
的 JavaScript 函数(在嵌套对象中),还是我必须等待 Dart 2.0 才能对 [=13 进行特殊处理=] 可能会被删除?
我有一个像这样的 JS 代理:
@JS()
class SomethingFancy {
external String call();
}
但是由于call()
可以将对象变成函数,所以无法访问JS对象的函数
如果可以的话,我会更改 Dart 中方法的名称,但 package:js
不支持:
/// By default the dart name is used. It is not valid to specify a custom
/// [name] for class instance members.
我得到的错误是:
Uncaught Error: NoSuchMethodError: method not found: 'call[=17=]' (J.getSomethingFancy$x(...).call[=17=] is not a function)
如果该函数不存在,错误将如下所示:
Uncaught Error: NoSuchMethodError: method not found: 'callMe' (receiver.callMe is not a function)
同一对象上的其他函数工作正常。
您可以在 call
前加上 JS$
:
@JS()
class SomethingFancy {
external String JS$call();
}
JS$
可以作为前缀,允许访问与dart关键字冲突的JS名称。
有什么方法可以从 Dart 调用名为 call()
的 JavaScript 函数(在嵌套对象中),还是我必须等待 Dart 2.0 才能对 [=13 进行特殊处理=] 可能会被删除?
我有一个像这样的 JS 代理:
@JS()
class SomethingFancy {
external String call();
}
但是由于call()
可以将对象变成函数,所以无法访问JS对象的函数
如果可以的话,我会更改 Dart 中方法的名称,但 package:js
不支持:
/// By default the dart name is used. It is not valid to specify a custom
/// [name] for class instance members.
我得到的错误是:
Uncaught Error: NoSuchMethodError: method not found: 'call[=17=]' (J.getSomethingFancy$x(...).call[=17=] is not a function)
如果该函数不存在,错误将如下所示:
Uncaught Error: NoSuchMethodError: method not found: 'callMe' (receiver.callMe is not a function)
同一对象上的其他函数工作正常。
您可以在 call
前加上 JS$
:
@JS()
class SomethingFancy {
external String JS$call();
}
JS$
可以作为前缀,允许访问与dart关键字冲突的JS名称。