問題タブ [dart-js-interop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1058 参照

callback - 引数が一致しないクロージャー呼び出し: 関数 'call'

(2.0)js-interop ライブラリを JS ライブラリImageLoadedFunctionProxyと組み合わせて使用​​していますが、以下のコードで次のエラーがスローされるため、クラスがスタックしています。

例外で中断: 引数が一致しないクロージャー呼び出し: 関数 'call'

アプリがクラッシュする前に js コールバックが 5 回呼び出されるため、これは奇妙です。

0 投票する
1 に答える
1949 参照

dart - Dartでwindow.promptを作成するには?

Dart を使用していくつかのアプリを作成していますが、簡単な質問が 1 つあります。dart:html ライブラリにプロンプ​​ト ダイアログが見つかりません。アラートと確認のダイアログ呼び出ししか見つかりませんでしたが、それは必要なものではありません。Dart api から他の可能性をいくつか試しましたが、それを行う方法はありません。モーダル ダイアログや Dart 独自のプロンプト ダイアログのようなものがあるべきだと思います。モーダルはここにありますが、ポップアップに別のファイルをロードするだけです。

誰か助けてくれませんか?


更新:実は、1 つの解決策を見つけました。これは、dart:js ライブラリの JavaScript のエミュレーションです。

これは良い解決策ですが、JavaScript をエミュレートするよりも優れた方法があるに違いないと思います。


更新 2: Dart 仕様のプロンプト ダイアログが不十分であるため、ここにあるDart API と Dart ライブラリは Google Code イシュー トラッカーのバグです。仕様でプロンプトが重要であると思われる場合は、バグにスターを付けましょう。現代的な方法でそれを行う方法など、他のアイデアがあります(たとえば、組み込みのモーダルダイアログのようなものを提案することができます)。または、プロンプト/モーダルダイアログの実装も最新のプログラミング言語で行う必要があると思われる場合は、共有してください...


更新 3:現在、Polymer.dart ライブラリにある新しいモーダル アラート、確認、プロンプト ダイアログについて説明しています。これは Google Codeイシュートラッカーの拡張機能です。ダイアログの最新のモーダル フォームが必要な場合は、バグにスターを付けましょう。より良い方法を知っている場合は、議論してください...

0 投票する
1 に答える
325 参照

javascript - Dart から呼び出すことができる JavaScript オブジェクトのプロキシ/パススルーを作成する最もクリーンな方法

これは確かに奇妙ですが、我慢してください:

Dart から JavaScript を呼び出せるように、Dart の js-interop パッケージを使用しています。

私が使用しなければならないシステムには、特定のグローバル JavaScript オブジェクトを介した通信パスがあります。このオブジェクトは、ネイティブ コードを呼び出す方法として JavaScript コンテキストに挿入されますが、これは真の JavaScript オブジェクトではありません。少しハッキーです。

このオブジェクトに直接 Dart Proxy を作成することはできません。Proxy コードは、このハッキー オブジェクトには存在しない特定のコンストラクターとプロトタイプ チェーンの側面に依存しているためです。具体的には、dart2js によって生成された JsObject_JsObject 関数は、constr が JS オブジェクトのコンストラクターである「constr.bind.apply」を呼び出そうとします。このオブジェクトには .bind プロパティがありません。これは、他のオブジェクトから正しく継承されていないためです。また、プロトタイプ チェーンを追加/修正する試みはこれまでのところすべて失敗しています。

それを修正できれば、それは素晴らしいことです。しかし、私の他のオプションは、プロキシをプロキシすることです.wacky-hacky-native-objectをラップしてプロキシする真のJavascriptオブジェクトを作成し、そのためのDart Proxyを作成します。

その JS プロキシを作成する最もクリーンな方法が何であるかに興味があります。Dart からさまざまな数のパラメーターを使用してさまざまな関数を呼び出し、常に維持する必要なく、呼び出しがネイティブ オブジェクトにクリーンに渡されるようにしたいと考えています。ネイティブオブジェクトに追加された関数がプロキシに追加されていることを確認することにより、私の JS プロキシ。

多くのメンテナンスを必要とせず、ネイティブオブジェクトへの呼び出しを自動的にリダイレクトするだけで、このプロキシをばかげないようにする素晴らしい/不気味なアイデアを誰かが持っていますか?

0 投票する
1 に答える
398 参照

dart - dart:js を使用して、SoundCloud JavaScript API を介してオーディオをストリーミングする

私は、ダルチザンがSoundCloud JavaScript SDK ( http://developers.soundcloud.com/docs/api/sdks#javascript )を使いやすくするライブラリを書こうとしています。

「dart:js」ライブラリを使用しており、プロキシを処理するために 1 つのクラスのみを使用しています。

これをホストしているレポは ( https://github.com/darkkiero/scproxy )

「ストリーム」メソッドを実行しようとすると、問題が発生します。

javascript 'SC.stream' メソッドによって返された soundmanager2 オブジェクトを取得して使用しようとすると、dart エディターで次の例外が発生します。

「SC.stream」のコールバックを収集することで、soundmanager2 オブジェクトの dart JsObject を取得できるはずだという印象を受けていますが、方法はわかりません。しかし、「dart:js」を完全に誤用している可能性があります。それも有益な情報になります。

0 投票する
1 に答える
1559 参照

dart - Dart から js をどのように操作しますか?

いいえ、これは同じ名前の他の質問と同じではありません。

これを行うように見える一見同一のパッケージがありますが、API が異なります。

なぜ2つあるのですか?

どちらを使用する必要がありますか?

相互運用機能はより新しく見え、より優れた API を備えていますが、実際には機能しません。ドキュメントによると、この JavaScript を変換できるはずです。

の中へ:

しかし、コンパイルしようとすると次のエラーが発生します。

それで... js:dart? それはあなたが使用することになっているものですか?

編集:ちなみに、これに出くわした人のために、 dart-js相互運用ブリッジの縮小方法に関する未解決のバグhttp://code.google.com/p/dart/issues/detail?id=15795&thanks=15795&ts=1388068177もあります操作は現在機能しません。最初の問題は 2013 年 5 月に報告され、それ以来何の対策も取られていません。