0

DOJO で作業しているときに問題が発生しました。ここでは、コンテンツを含む div を動的にロードしてから parser.parse(dom.byId("mainDiv")); を実行します。それぞれの要件で。そして、それは初めて美しく機能します。ただし、2回目は、コンテンツがアクティブ化またはスタイル設定されていないことを示すだけの問題に遭遇します。

2 回目の実行では、div 内のすべての html を削除してから、html を基本的な解析されていないテキストに置き換えてから、再度解析します。今、私はそれが dijit.registry で何かをしなければならないと推測していますが、それをクリアしようとしても役に立たなかったので、問題が何であるかを正確に見つけることができません。どうぞよろしくお願いいたします。

4

1 に答える 1

3

Dojo は、指定された ID で作成したオブジェクト/ウィジェットを追跡します。同じ ID を持つオブジェクトでパーサーを再度実行すると、Dojo は 2 番目のインスタンスを作成しようとしますが、既に 1 つあるため、js コンソールでエラーがスローされるはずです (確認してください)。

ID を空白のままにしておくと、dojo / parse によって ID が作成されます。Dojo では、クラス属性によって dom 要素を見つけることができます。これにより、明示的な ID を指定せずに、div 要素を parse() 関数に渡すことができます。

別の方法は、div 要素を再度解析する前に、作成されたウィジェット/オブジェクトを破棄することです。それについては、こちらをご覧ください。

Dojo とウィジェットの登録解除

http://livedocs.dojotoolkit.org/dojo/parser#parseからの引用

「同じコンテンツを 2 回解析しようとしたり、既存のウィジェットの ID に言及しているコンテンツを解析しようとすると、ID の重複に関する例外が発生します」

于 2013-04-08T21:45:38.023 に答える