問題タブ [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.
angularjs - angularコントローラーの初期化でdart関数を呼び出す
AngularJS コントローラーの初期化で dart 関数を呼び出そうとしましたが、ReferenceError: myFunction is not defined
.
index.dart
AngularJS を使用した私の html:
コントローラーが初期化されるとき、それcontext['myFunction']
はまだ設定されていないようです。それを待って初期化するにはどうすればよい$scope.var
ですか?
dart - ダーツへのJavaScriptの移植に苦戦
Dart に移植したいオリジナルの JavaScript コード。
私が試してみました
しかし、これは私が期待したように機能します。おそらく、js.JsObject が dart オブジェクトを返すためです。使用する必要がありますJsObject.jsify
か? jsify
ダーツオブジェクトのみのコレクションを受け取るようです。
dart - Dart (js 相互運用) から Blockly の addChangeListener() 関数を使用する
Dart:js を使用して、Dart から Blockly API にアクセスするためのラッパー コードをいくつか書いています。JS 側で Blockly のイベント登録関数の 1 つに関数を渡す必要があるまで、すべてが順調に進んでいます。
Blockly で問題となっている機能はaddChangeListener()
( https://developers.google.com/blockly/installation/code-generatorsを参照) です。引数なしの関数をコールバックとして受け取ります。したがって、私の目標は、Dart 関数をラップして渡し、イベントが発生したときにその関数が呼び出されるようにすることです。
ダーツで:
Blockly が初期化されると、次のスタック トレースが取得されます。
誰かが私が見逃した明らかなことを指摘してくれることを願っています。
これは、blockly の外部で関数を渡そうとしたところ、正常に機能したため、blockly が関数を内部で処理する方法に特に関係している可能性があると感じています。
dart - Dart で JavaScript 例外をキャッチする方法はありますか?
私は次の<core-icon>
ような要素を持っています
これにより、この例外が発生します
私の意見では、これは<core-icon>
問題ですが、問題を作成しますが、とにかく私の質問は次のとおりです。
Dart でそのような JavaScript 例外をキャッチする方法はありますか?
もちろん、成功icon = null;
するtry/catch
かどうかにかかわらず、行をラップしようとしました。window.onError.listen((e)...);
dart - Dart クライアント側のコードの非表示/難読化
クライアント側の dart コード (または dart によって生成された js) を非表示/難読化することは可能ですか?
JavaScriptを使用する場合、難読化がルートのようです。Dart には難読化ツールが付属していますか?
ありがとう
dart - JsObject への匿名のコールバック関数は、ユーザー アクションの後まで Dart コントローラーを更新しません。
ダーツコードを考えると
JSを呼び出します:
ビューに影響を与えるはずです:
ボタンのクリックと 500 ミリ秒の遅延の後、コンソールに "WTF" が正しく表示されます。div
ただし、 は引き続き表示されます。ユーザー アクションが発生すると (私の場合はマウス クリック)、div
魔法のように消えます。コントローラーの値が変更されたように見えますが、匿名のコールバックでコントローラーの値を出力したため、ブラウザーは div を非表示にする変更を受け取りません。
回避策がありますが、呼び出し後に JavaScript で使用するのと同じフェード時間に Dart タイマーを設定しJsObject
、それらのタイマー コールバックでコントローラーの値を設定する必要があります。
dart - JavaScript から Dart クラスを使用する
Dart クラス (foo.dart) があります。
foo.dart を JavaScript にコンパイルした後、次のように Foo を使用できるようにしたいと思います。
私の質問:
- これは現在可能ですか?
- もしそうなら、どのように?
- そうでない場合、それを可能にするためにどのような計画が立てられていますか?
dart:js ライブラリのドキュメントには次のように記載されています。
このライブラリは、Dart オブジェクトを JavaScript から使用できるようにはまだしていません。それらのメソッドとプロパティ [原文のまま] にはアクセスできませんが、Dart 関数を JavaScript に渡したり、JavaScript から呼び出したりすることはできます。
「まだ」という言葉は希望を与えてくれますが、このトピックについては他の場所ではほとんど見つけられませんでした。
編集:
Dart2js を使用して JavaScript から Dart 関数を呼び出すことが可能であることは認識しています。ただし、私がやろうとしていることは多少異なります。JavaScript から Dart クラスのすべての機能にアクセスできるようにしたいと考えています。
dart - Dart VM なしで Dart API を JavaScript にエクスポートする
Dart VM のないブラウザーで Dart API を JavaScript にエクスポートしたいと考えています。たとえば、クラス A が与えられた場合:
エクスポートされた API を使用して JavaScript オブジェクトを作成したいと思います。
以前の質問への回答で、js-interop にたどり着きました。
ただし、 README の例を実行しても、期待どおりの結果が得られません。Dart ライブラリが JavaScript にエクスポートされていないようです。
pubspec.yaml :
例/main.dart
ライブラリメイン:
lib/a.dart
index.html
(最後の script タグの src 属性がどこを指すかは明確ではありません。 /example/main.dart も使用してみましたが、結果は変わりません。)
コンパイル (Tool -> Pub Build) と index.html のロード後にコンソールを開き、次の操作を実行できることを期待していました。
ただし、代わりに「未定義のプロパティ 'A'を読み取れません」というメッセージが表示されます。つまり、dart.a
未定義です。
index.html に生の Dart スクリプトが含まれていることは、js-interop が Dart VM を備えたブラウザーを対象としていることを示唆しています。Dartium で index.html を実行してみましたが、結果は同じでした。
私は何が欠けていますか?
dart - Dart で Skrollr を使用する
Skrollr.js を使用して、Dart Web アプリケーションにスクロール ベースのアニメーションを実装しようとしています。これまでのところ、main() には次のものがあります。
何らかの理由で、実行時に次のエラーが発生します。
skroller.min.js は index.html の横にあるアプリに配置されているので、ここで何が問題なのかヘルプを探しています。
また、これがスクロール ベースのアニメーションの純粋な Dart の代替手段である場合は、それについても喜んでお知らせします。
前もって感謝します。