問題タブ [wirejs]

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 投票する
2 に答える
772 参照

jquery - wire.js がオブジェクトの作成に失敗する理由を理解できません

これが私のウェブサイトのセットアップです:

索引.html

hello-wired-spec.js

hello-wired.js

main.js

私はRequire.jsandを使用wire.jsして、単純な IoC プロトタイプ Web サイトを作成しています。私の問題は、index.html ページを読み込むと、ブラウザーのコンソールに次のように表示されることです。

何かを見逃したようですが、ここで何をすべきかわかりません。誰か助けてくれませんか?

編集Scripts私のサイトのフォルダーは次のとおりです。

私のウェブサイトの Scripts フォルダ

EDIT OK プロジェクト構造を少し変更し、HTML ページを次のように変更しました。

ここに画像の説明を入力

以前は 404 を取得していませんでしたが、「パッケージ」構成セクションもありませんでした。HTML を変更した後に 404 が発生しましたが、/jsファイルを予想される場所に配置することで修正しました。このすべての後、私はまだ同じエラーを受け取ります:

ここに画像の説明を入力

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

node.js - node.jsのwire.jsの例

私はNodeを初めて使用し、C#のバックグラウンドから来て、Nodeで理解しようとしている主なものの1つは依存性注入です。私はwire.jsにその機能があることを理解しており、そこにあるすべてのものを読み、Htmlの「HelloWorld」の例もダウンロードしました。しかし、それでも正しく動作させることができません。

これが私がそれを機能させるためにしたことです:

  1. hello-wired.jsファイルとhello-wired-spec.jsファイルをNodeプロジェクトにプルしました。
  2. サンプルアプリの/js/wireからNodeアプリの/node-modules/wireにwireフォルダーをプルしました。
  3. Htmlノードがないため、コンストラクターのhello-world.jsのコード行を削除し、コンストラクターをパラメーターなしにしました。次に、InnerHtmlがないため、sayHelloの行をconsole.log()を使用するように置き換えました。
  4. テストアクションを次のように作成しました



私が得ているエラーは、モジュールwire!hello-wired-specが見つからないことです。これは、仕様を取得する場所を知るようにwire.jsを構成していないことを意味すると思いますが、その方法がわかりません。また、これにコールバックを使用することになっているのかどうかもわかりません。

どんな助けでも大歓迎です。

0 投票する
2 に答える
2167 参照

requirejs - PhantomJS を使用して RequireJS/WireJS アプリを実行する

RequireJS (2.1.8)、WireJS (0.10.2)、PhantomJS (1.9.2) を使用する基本的なアプリを実行しようとしています。

  • PhantomJS (これが私の目標です) を使用してアプリを実行すると、WireJS の読み込みに失敗します (以下のエラーを参照)。
  • Chrome を使用してアプリを実行すると、正常に完了します。

PhantomJS で WireJS が適切に動作するために不足している部分を指摘してください。

以下は私のアプリファイルです。

1) app.html

2) app.js

3) wireContext.js

4) ファントムランナー.js

5) PhantomJS でアプリを実行するとエラーが発生する

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

javascript - jQuery プラグインでの wirejs の使用

次のように使用する「myPlugin」などのjQueryプラグインがあります。

  • 私のDOMが含まれている場合:

    /li>
  • div でプラグインを呼び出します。

    /li>
  • これにより、プラグインは次のようになります (たとえば)。

    /li>

以下の例のように、このプラグインをwirejs仕様のコンポーネントとして何らかの方法で使用できるかどうかを把握しようとしています(ただし、私が使用しているonDomのようなものはありません):

jQueryプラグインでwirejsを使用しようとしている人もいると思います。誰かがその例やドキュメントを共有できますか?

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

javascript - wirejs - 依存する各コンポーネントの新しいコンポーネント インスタンス

最初:私は新しいwirejsであり、ドキュメントで何かを見逃している可能性が非常に高いです

通常のコンポーネント宣言では、次のようになります。

$ref を使用してそのコンポーネントに依存するすべてのコンポーネントは、同じインスタンスを取得するため、ワイヤも一種のシングルトン メカニズムになります (ほとんどの場合、これは私にとって良いことです)。

場合によっては、同じコンポーネント構成を使用して、すべての依存関係がコンポーネントの独自のインスタンスを取得することを望みます。

複数のコンポーネント名またはインスタンスのインライン作成を使用して同様の結果を得る方法を知っていますが、それを避けようとしています。

ありがとう!

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

wirejs - cujojs/wire コンテキストを別のコンテキストに「インポート」する

次のユースケースを実現する方法を探しています。

  1. 多くのモジュールがあり、それぞれにコンポーネントを公開するワイヤ仕様があります
  2. アプリケーションを組み立てるために、モジュールを選択し、それらのワイヤ仕様を使用します
  3. アプリケーションのワイヤ仕様は、使用されているモジュールのワイヤ仕様のマージです: (3.1) 各モジュールのワイヤ仕様をオブジェクトとして「要求」することから始めます。(3.2) 次に、オブジェクトをマージします。(3.3) そして最後に、アプリケーションのワイヤ仕様を定義するオブジェクトとして結果を返します。

アプリケーションの context-spec のサンプルを次に示します。

上記を行うための「ネイティブ」な方法を見つけたいと思って、ワイヤのドキュメントを何度か読みましたが、これまでのところ見つけることができませんでした。

「ネイティブ」な方法は「ワイヤ」ファクトリのようなファクトリになりますが、モジュールごとに子コンテキストを作成する代わりに、各モジュールのコンポーネントをアプリケーション コンテキストの直接コンポーネントとして確認したいと考えています。

たとえば、Spring では、コンテキスト定義を別のコンテキスト定義にインポートできます。結果は、インポートされたコンテキストのコンテンツがインポート元のコンテキストにインライン化されているかのようになります。

0 投票する
2 に答える
4727 参照

requirejs - requirejs を使用してポリフィル ライブラリをプリロードする

wirejsを使用してアプリを作成していrequirejsます。IE 8 の場合、polyfills: cujo/polyjs ライブラリを使用しており、ロードする前にこのライブラリをプリロードする必要がありますwirejs

curlドキュメントに従って、AMD ローダーとして使用した場合、次のオプションを利用できます。

私にとってうまくいくのは:

このドキュメントshimでは、この目的で config を使用することを推奨しています。しかし、私はその方法を理解することができませんでした。私が試したことのいくつか:

これにアプローチするより良い方法はありますか?

助けていただければ幸いです!...お時間をいただきありがとうございます!

0 投票する
0 に答える
107 参照

dojo - dojo ビルドシステムを使用した wirejs と dojo

依存性注入にwirejsを使用するdojoアプリケーションがあります。
アプリケーションをビルドしようとすると、「when」モジュールと「meld」モジュールで依存関係エラーが発生します。次のように:

私の道場ビルド プロファイルの関連部分は次のとおりです。

ここで何か不足していますか?

ありがとう !

0 投票する
0 に答える
201 参照

dojo - dojo ビルドシステムを使用した wirejs と dojo (2)

(これは、 dojo ビルド システムを使用する wirejs および dojo と同じ質問ですが、問題と試行された解決策についての詳細が記載されています。これはコメントで提案されたため、重複する質問が作成されます)。

Wire を使用する Dojo アプリケーションをビルドすると、Dojo ローダーは「./lib/context」に対してエラーをスローしますが、undefinedModuleこれを取り除くことはできません。

wire私は、git サブモジュールを使用して、大規模な作業中の dojo プロジェクトに追加しました。cujojswhenと cujojsmeldも必要であることがわかりました。それらもgitサブモジュールとして追加しました。

このプロジェクトでは、ライブラリはアプリケーション フォルダ ( ) の隣ではなくsrc/app、1 レベル深い にありsrc/libます。、 、 、 などがあります。ライブラリは、src/lib/wiresrc/lib/whensrc/lib/meldの2 レベルの深さです。src/lib/dgriddojosrc/lib/dojo/dojosrc/lib/dojo/dijitsrc/lib/dojo/dojoxsrc/lib/dojo/util

バージョン:

  • 道場 1.10.4
  • ワイヤー 0.10.9
  • 3.7.2のとき
  • メルド1.3.1

次のパッケージ定義を に追加すると、開発 (アンビルド) で機能しますdojoConfig

mainエントリを追加する必要があることに注意してください。これにより、たとえば、cujojs コードが内部的に行う の代わりに、依存関係リスト内でwhen/when.jsasを参照することが可能になります。"when""when/when"

したがって、これは開発モードで機能します。

次に、ビルドを機能させようとしました。

build.profile.js、パッケージ参照を再度追加しました。ビルドは、さまざまな方法でそのように失敗します。

まず、パッケージの場合、Dojo ビルダーは、パッケージのビルド構成を本質的に定義するファイルまたはファイルを参照する、ファイルdojoBuild内のプロパティを予期します。ほとんどの場合、このビルド構成は (すべてのパッケージに含まれています) 単なるオブジェクトであり、どのファイルがパッケージ内の AMD リソースであるか、どのファイルがテストであるか、およびどのファイルをそのままコピーする必要があるかを定義する関数を備えています。package.json<mypackage>.profile.jspackage.jsresourceTags

cujojs パッケージには、dojo ビルダーで使用できるそのようなビルド定義はありません。

ビルダーは、最初にこれらのパッケージのビルド構成がないこと、次にリソースが AMD リソースとしてフラグ付けされていないことを訴えます (これがこのビルド構成ファイルの主な理由です)。

使用している外部ライブラリのファイルを変更したくないのでdojoBuild、cujojs パッケージにプロパティとビルド構成ファイルを追加する気はなく、回避策を探しました。

package.jsonDojo ビルダー コードをステップ実行した後、ビルダーはファイルにプロパティがないことを訴えていることがわかりましたdojoBuildが、最終的には内部パッケージ定義構造を調べてresourceTagsオブジェクトを取得するだけです。内部パッケージ定義構造は、メイン ビルド プロファイルのパッケージ定義から始まります。だから、私はそこでオブジェクトをピギーバックすることになりresourceTagsました:

、およびresourceTagsのパッケージ定義の追加のプロパティに注意してください。私は物事を「シンプル」に保ち、1 つの一般的なオブジェクトを使用して 3 つのケースすべてを処理しました。これは、すぐに説明するを除いて、かなり標準的な設定です。wirewhenmeldgeneralResourceTagsresourceTagsisGivingTroubleButUnused

https://github.com/cujojs/when/wiki/Using-with-Dojoで明示的に言及されているソリューションを試してみましたがwhen、うまくいきませんでした

このようにして、dojo ビルダーからかなり適切なレポートを取得できますが、不足しているリソースについて言及されています。たとえば、一部のモジュールには jquery が必要です。ただし、これらのモジュールはこのプロジェクトでは使用されません。

Wirejs および dojo using the dojo build systemで言及されているソリューション、ピギーバッキングのpackageJson方が優れている可能性があることに注意してください。私はそれをテストしていません。

isGivingTroubleButUnusedとにかく使用しないため、これらのモジュールを処理せずにコピーするために を導入することになりました。問題の 1 つは にあることに注意してくださいwhen/generator。Closure コンパイラはそこで構文エラーを検出します ( https://github.com/cujojs/when/issues/429を参照)。

このセットアップの最終的な結果は、エラーのないビルドです。

そして、これをテストしたいのですが...失敗します。最初に表示されるエラーは、確かに dojo ローダーが for をスローしたundefinedModule Errorことです"./lib/context"。これが実際に発生する唯一の場所は、 の 23 行目ですwire/wire.js

これは に解決されることを意図してwire/lib/context.jsおり、明らかにこれは開発 (アンビルド) モードで機能します。

いずれにせよ、requireモジュール参照は相対的であるため、コンテキスト依存の require (dojotoolkit.org /documentation/tutorials/1.10/modules_advanced/、「条件付きで必要なモジュール」を参照) を意図しています。しかし、それがアンビルドで動作し、ビルドで動作しない理由にはなりません。

次に、すべてのwire,whenおよびmeldリソースをコピーしようとしました。レイヤーの Dojo ビルドにリソースが含まれていない場合は、非同期ロードにフォールバックします。したがって、これはうまくいく可能性があります:

ビルドが成功し、必要なものがコピーされます。もちろん、アプリのコードが参照する場所にはさらに多くのエラーがありますが、wireそれは予想されることです ( error(311) Missing dependency. module: MY_MODULE; dependency: wire!SOME_PACKAGE/_wire-serverRequests)。

それでも、ブラウザは同じ場所で同じエラーを出します: undefinedModule Errorfor "./lib/context".

この時点での作業仮説はwire、名前の下でによって使用される関数requireは、ビルド バージョンでは状況依存の require ではなく、アンビルド バージョンでは要求されるというものです。

本当じゃない。まず、wireコードまたはテストを読み取りに変更しました

参照を絶対にする。同じ問題。

次に、sourceMaps ( useSourceMaps = true) を使用してデバッグを試みました。これは悪夢だrequire

多分「プリロード」は機能しますか?そのため、トップの HTML ページでは、すべてのコードを

contextこれにより、他の処理を行う前に確実にロードされます。同じエラー。

次に、コードにログを追加しましたwire/lib/context

(errorビルドで他のメッセージが取り除かれるため、 を使用)。

アンビルド バージョンでは、すべてのメッセージが表示されます。ビルド版では、エラーが発生する前に「Defining context」しか表示されません。したがって、問題は "loading"wire/lib/contextではなく、それを定義することであり、おそらくロードまたは定義することwhenです!

だから、私は同じトリックに適用しましたwhen

アンビルド版には驚きがあります。出力は次のとおりです。

これは、定義が定義の前にwhen開始されたことを意味します。行の前に、で必要なローダーを伝えることができるコードが表示されないため、これは奇妙です contextwhencontext

これは、「コンテキストの定義」のロギングのに実行されます。

ビルドバージョンでは、まだ取得できるのは

エラーになる前に!この動作は明らかに異なります。

次に、プリロード コードを削除しました。アンビルド コードでは同じ出力が得られますが、ビルド コードではエラーが発生する前にメッセージが表示されなくなりました。

したがって、いずれにせよ、このwireコードは、読み込み中に予期せず理解できないことを行っています。

この余分な詳細が、誰かが私たちを正しい軌道に乗せるきっかけになることを願っています...