2016-07-16 5 views
1

私はDojoで1ページのアプリケーションを作成しています。これはajax経由でフォームを送信し、戻り値を解析してページを表示します。私はこれについて行くとき、私はタイミングエラーで終わる。未定義dijit/registryとdojo/domReadyによるDojoタイミングの問題

次のコードは、スクリプトタグを使用して含まれている場合は、それが記録されます:

require(["dijit/registry", 'dojo/domReady!'], function(registry){ console.log(registry.byId('my-id')) }); 

私はコンソールに貼り付けた場合、私が期待したdijitウィジェットを取得します。

ページがレンダリングされる前に問題が発生していると思われます。現在のドキュメントが完全に解析され、メインウィンドウに含まれた後に、これが確実に起こるようにする簡単な方法はありますか?

答えて

2

Parserを追加し、ウィジェットにアクセスする前にParser.parse()に電話をかけてみることをおすすめします。

これはウィジェットで作業する場合、火災にdojo/domReady!を待っていることは、多くの場合、 十分ではないことに注意してください

道場のドキュメントからです。多くのウィジェットが初期化すべきではないか にアクセス以下のモジュールをロードするまで実行します。

  • 道場/ uacss
  • dijitの/ hccss
  • 道場/パーサ
+0

うーむ、私は何かを持っていますそれ以外の場合はパーサを呼び出し、Dojoはそれを2度呼び出すとそれを気に入らない。 –

+0

おそらく、setIntervalを使用して見つかるまで再試行する必要がありますか? –

+0

私は正しい軌道で私を導くので、この答えを受け入れることになります。つまり、必ずここに競争条件があることを認識し、見つかるまで確認/再試行してください。 –

関連する問題