2016-12-15 22 views
0

私は既存のWebアプリケーションをPolymerに変換しています。 Webアプリケーションは、コンポーネント(Knockoutコンポーネントアーキテクチャ内)とモジュールで構成されています。どちらもRequireJSを使用して読み込まれます。 KnockoutコンポーネントをPolymerのカスタム要素に変換する方法はわかりますが、JavaScriptモジュールを扱う方法はわかりません。 RequireJSモジュールはJavaScriptオブジェクトを返します.JavaScriptオブジェクトは、JavaScriptに渡されます.JavaScriptオブジェクトに依存するパラメータは、define関数に渡されます。モジュールコードがRequireJSではなくHTMLインポートによってロードされている場合、そのオブジェクトを取得する方法はないようです。AMDモジュールをPolymerカスタム要素にインポートする方法は?

たとえば、既存のコンポーネントのいくつかは、日付/時刻操作のためにmoment.jsモジュールを使用します。それらはRequireJSを介してロードされ、モーメントオブジェクトへの参照が渡されます。 Polycastのビデオの1つでは、Rob Dobsonは、をインポートする<script>タグを含むmoment.htmlファイルを書き込むことをお勧めします。 Polymerカスタム要素はmoment.htmlのHTMLインポートを実行できますが、moment.jsモジュールから返されたオブジェクトへのコンポーネントアクセスは許可されません。モーメントはそのオブジェクトをグローバル名前空間に入れません。したがって、Polymerカスタム要素はモーメントオブジェクトにどのようにアクセスしますか?イッツhttps://github.com/PolymerLabs/IMD

:私はIMDと呼ばれるようなものを作っ

「あなたはポリマー/ HTMLのインポートで動作するモジュールローダ/レジストリを必要とするように、ここでサウンド:

+0

私はPolymerで 'moment'を使用しました。あなたがする必要があるのは、ソースタグを使用してスクリプトをインポートしてから、あなたのploymer関数で 'moment(date).format( 'D MMM YYYY')'のように直接使うことができます – a1626

+0

モーメントの使用は推奨されなくなりました。これを使用すると、コンソールに次のメッセージが表示されます。「廃止予定の警告:グローバルスコープからモーメントにアクセスすることは推奨されておらず、今後のリリースで削除されます。要点は、アプリケーション内のモジュールはグローバル名前空間に何も置くのではなく、RequireJS "define"関数を介して依存コンポーネントへの参照を渡すことです。 –

+0

あなたはバウアーを瞬間的にインストールしましたか? – a1626

答えて

0

このポリマーチームのジャスティンFagnaniから。 AMD準拠のモジュールレジストリだけではなく、ローダーではないため、すべてのモジュールを明示的またはタグでロードする必要があり、依存関係の順序が保持されます。

これはまさに私が探していたものです。

関連する問題