21

dart からアラート メッセージを送信することはできましたが、別の js ファイルに記述した関数を dart から呼び出す方法がわかりませんでした。これが単純だったら、大きなセールス ポイントだったでしょう。私はこの投稿を見て、それが私を始めさせましたが、方法があるに違いないと感じているので、それを理解したら愛を共有してください.

これが私がやったことです:

  1. これを yaml ファイルに追加します。

    依存関係: js: ホスト: js

  2. import ステートメントを dart ファイルの先頭に追加します。 import 'package:js/js.dart' as js;

  3. このコードを追加して、警告メッセージを表示します

    js.scoped(() { js.context.alert("喜びのためにジャンプ!"); });

  4. これは私がうまくいくと思うがうまくいかない部分です:私はjavascript関数doSomething()を持っているので、

    js.context.doSomething();

4

2 に答える 2

17

最初にjs パッケージを依存関係として に追加しますpubspec.yaml

dependencies:
  js: any

myFunc()次に、そのような独自の js 関数を使用できます。

import 'package:js/js.dart' as js;

main() {
  js.context.myFunc();
}

js.contextjavascript のエイリアスwindowです。

詳細については、Dart から JavaScript を使用する: js ライブラリを参照してください。

于 2012-12-12T17:52:48.470 に答える
10

たぶん私の答えは誰かにとって価値があるので、Dart からの単純な JS 関数呼び出しを投稿しています。

  1. jsパッケージの依存関係 を追加します。
    dependencies:
      js: any
    
  2. JS ファイルを作成します。たとえば、次のようにしますexample.js
    function test() {
      return 12+20;
    }
    
  3. タグでexample.js上記を内部index.htmlに追加します。<script src="...">
  4. 上記の関数を JS から Dart に相互運用します。
    @JS()
    library t;
    
    import 'package:js/js.dart';
    
    @JS()
    external int Test();
    
    class MyOwn {
      int get value => Test();
    }
    
  5. そして、AngularDart の TODOLIST (デフォルトで利用可能なコンポーネント) では:
    @override
    Future<Null> ngOnInit() async => print(MyOwn().value);
    
于 2019-05-20T20:35:24.953 に答える