質問

からサンプルプロジェクトを使用しています ここ.

私のサービスのクライアントにJavaScript APIを提供するために、モジュールから何らかの機能をエクスポートする必要があると仮定します。

しかし、私の.jsファイルの宣言は、requirejsの外には見えません!

次のブロックをjquery-require-sample/webapp/app.htmlに追加します。

<script type="text/javascript">
   $(document).ready(function() {
      $('body').alpha().beta();
   });
</script>

失敗する: Uncaught TypeError:オブジェクト[オブジェクトオブジェクト]はメソッド「アルファ」がありません.

私がやりたいことをすることは可能ですか?

役に立ちましたか?

解決

あなたが提供したコードに基づいて、app.htmlの既存のスクリプトタグの後にコードを追加したと仮定します。あなたが見ているのはタイミングの問題だと思います。ページをロードしたら、 <head> タグと次の順序でスクリプトタグが表示されます。

  1. 「要求」スクリプト
  2. あなたの新しいスクリプト
  3. アルファ
  4. ベータ

そのため、アルファとベータが実行される前にスクリプトを実行しています。その理由は、必要に応じて最初のスクリプトを処理するが、依存関係がすべて実行されるまでmain.jsの「肉」を実行しないためです(アルファとベータ)。

これが役立つことを願っています。コードの以下の変更は、何が起こっているかを示している可能性もあります。 SetimeOutは、AlphaとBetaにロードする機会を与えます。

<script type="text/javascript">
  setTimeout(function(){
           $(document).ready(function() {
              $('body').alpha().beta();
           });
           }, 5000);
</script>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top