2014-09-24 72 views
0

我有一個dojo自定義小部件,它使用帶邊框容器和內容窗格的頂部,前導,中心,尾部和底部區域模板。問題是,內容窗格顯示從上到下,不正確的佈局格式:邊框容器區域不會在自定義小部件中正確顯示

這裏是我的模板:

<div> 
<div data-dojo-type="dijit/layout/BorderContainer" style="width: 100%; height: 100%"> 
    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'">Top pane</div> 
    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'leading'">Leading pane</div> 
    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'">Center pane</div> 
    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'trailing'">Trailing pane</div> 
    <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'bottom'">Bottom pane</div> 
</div> 
</div> 

這裏是我的小工具:

define([ 
    "dojo/_base/declare", 
    "dijit/_WidgetBase", 
    "dijit/_TemplatedMixin", 
    "dijit/_WidgetsInTemplateMixin", 
    "dojo/text!Templates/LandUse.htm", 
    "dijit/registry", 
    "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dijit/TitlePane", 
], function (declare, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, LandUseTpl, registry) { 
    return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], { 
     templateString: LandUseTpl 
    }); 
}); 

主要頁面模板被調用和插入:

<script> 
... 
LU = new LandUse({}, "tool"); 
... 
</script> 
<body class="claro"> 
    <div data-dojo-type="dijit/layout/BorderContainer" id="Main" style="width: 100%; height: 100%"> 
    <div data-dojo-type="dojox/layout/ContentPane" id="TOC" data-dojo-props="splitter: true, region:'leading'"> 
    </div> 
    <div data-dojo-type="dojox/layout/ContentPane" id="Content" data-dojo-props="splitter: true, region:'center'"> 
    <div id="tool"></div> <!--here is the insertion point--> 
    </div> 
</div> 
</body> 

任何想法爲什麼這個顯示規定爲:

頂部面板

領先窗格

中心窗格

尾隨窗格

底部窗格

感謝

回答

0

這是因爲dijit/_WidgetsInTemplateMixin不支持佈局widge TS像BorderContainer

的dijit._WidgetsInTemplateMixin混入不支持添加布局 部件爲兒童。特別是startup()和調用子項resize()的問題。

出於某種原因,它會在控制檯中顯示錯誤信息,說明您要註冊的BorderContainer已被註冊。而且由於小部件渲染不正確,它將顯示純HTML,而這就是您可以看到的結果。

適當的解決方案是不要在模板中使用佈局小部件,但似乎還能工作的是以聲明方式使用小部件。例如:http://jsfiddle.net/8vdu1u72/

+0

好的,謝謝。我想知道這是否會得到支持。它肯定會派上用場! – pvitt 2014-09-25 14:29:21

相關問題