簡體   English   中英

dojo 1.10.4 dijit / layout / Tabcontainer無法呈現第一個contentpane的內容

[英]dojo 1.10.4 dijit/layout/Tabcontainer not rendering first contentpane's content

dojo 1.10.4,sitemesh 2.4.2

我試圖在我的項目中使用dojo 1.10.4來與sitemesh 2.4.2,spring框架4.1一起使用。

當我嘗試在內容部分中放置一個tabcontainer時(由sitemesh定義的頁眉,內容和頁腳樣式)。 我從來沒有出現過tabcontainer的第一個contentpane的內容,但它總是消失了。 測試代碼為:

<div style="width: 350px; height: 300px">
  <div data-dojo-type="dijit/layout/TabContainer" style="width: 100%; height: 100%;">
    <div data-dojo-type="dijit/layout/ContentPane" title="My first tab" data-dojo-props="selected:true">
      Lorem ipsum and all around...
    </div>
    <div data-dojo-type="dijit/layout/ContentPane" title="My second tab">
      Lorem ipsum and all around - second...
    </div>
    <div data-dojo-type="dijit/layout/ContentPane" title="My last tab" data-dojo-props="closable:true">
      Lorem ipsum and all around - last...
    </div>
  </div>
</div>

JavaScript為:

<script type="text/javascript">
  require(["dojo/parser", "dojo/aspect", "dijit/layout/TabContainer", "dijit/layout/ContentPane","dojo/domReady!"], function(parser, aspect) {
    parser.parse();
  });
</script>

結果為:

在tabcontainer中丟失了dojo第一個contentpane的內容

其他選項卡式內容窗格正確顯示。

開齋節

這是一個非常有趣的問題,它是由javascript引起的; 我將javascript更改為:

<script type="text/javascript">
  require(["dojo/parser", "dijit/layout/TabContainer", "dijit/layout/ContentPane"]);
</script>

然后,它工作正常。

當您已經解析TabContainer並嘗試再次解析它時,就會出現此問題。 發生的事情是新的窗口小部件已經存在,因此無法創建,因此您的第一個選項卡將無法正常工作。

如果打開瀏覽器控制台(通常是F12 ),您甚至會看到錯誤:

dojo/parser::parse() error Error: Tried to register widget with id==dijit_layout_ContentPane_0 but that id is already registered

要解決此問題,您應該嘗試尋找其他parser.parse()語句,或者如果您是這種情況,則可能已經在解析加載時的DOM(使用parseOnLoad: true ),則無需進行其他解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM