2016-10-13 13 views
0

私は約10のエラーをこのように読んでいましたが、解決策は見つかりませんでした。DojoウィジェットIDはすでに登録されています

私は道場でこのコードを実行します。

this.myHeader = registry.byId("banner"); 
// returns 'undefined' 

if(!this.myHeader) { 
    this.myHeader = new Header({ 
     primaryBannerType: 'thin' 
    }, "banner"); 
} 

は私のconfigがparseOnLead: trueですが、私は手動で任意のファイルウィジェットを解析していないので、私は、これは問題ありませんだと思います。 - ウィジェットが既に読み込まれているかどうかを確認します。 - ウィジェットを2回解析しません。

なぜこのエラーが発生しますか?

Tried to register widget with id==banner but that id is already registered 

おかげ

+0

ねえアレクサンダーはあなたには、いくつかのより多くのコードを共有するだろうか? –

+0

"ヘッダー"にサブウィジェットが含まれていますか?どのIDが既に登録されていると報告されていますか? – ben

+0

'id ==バナーでウィジェットを登録しようとしましたが、そのIDは既に登録されています ' ヘッダはIDXツールキットのウィジェットですので、動作するはずです – alex

答えて

1

あなたがあなたのページに同じIDを持つ他のDOM要素を持っていないことを確認してください。

私は通常、次のようなユーティリティスクリプトを使用しています。このスクリプトは、この種の問題を非常に迅速に発見し、デバッグ時に時間を節約できます。

デベロッパーコンソールにコピーして貼り付けることができます(自己呼び出し機能です)。

JSFiddleにも

(function() { 
 
    var elms = document.body.querySelectorAll('*[id]'), 
 
     ids = []; 
 
    for (var i = 0, len = elms.length; i < len; i++) { 
 
    if (ids.indexOf(elms[i].id) === -1) { 
 
     ids.push(elms[i].id); 
 
    } else { 
 
     console.log('Multiple IDs #' + elms[i].id); 
 
    } 
 
    } 
 
})();
<div id="a"></div> 
 
    <div id="b"></div> 
 
    <div id="b"></div> 
 
    <div id="b"></div> 
 
    <div id="c"></div> 
 
    <div id="c"></div>

https://jsfiddle.net/gibbok/m92pdje4/

+0

私はすでに私のIDの多くを改名し、このように問題を解決することを望んで^^ – alex

+0

@アレックス・グッド!私はあなたのお手伝いをしてくれてうれしいです。私の答えが見つかったら、それを受け入れるか、私の答えを投票してください:) - あなたはそれが好きなら答えを受け入れるには左のダクトアイコンをクリックしてください。 – GibboK

+0

xD – alex

関連する問題