我正在尝试使用 dojo1.7 进行简单的布局工作。我想要的几乎是:
- 一个标题行,包含一堆跨越整个页面的链接和内容
- 一个页脚行,包含一堆跨越整个页面的链接和内容
- 左侧的侧面板,里面有一棵树
- 一个带有一些标签的中央面板
我首先制作了所有小部件,并将它们全部显示在同一页面上。在我开始使用布局之前,一切都按预期运行(相关代码包含在问题的末尾)
首先,区域设置似乎在很大程度上被忽略了,页眉在它应该在的位置,而页脚在它的正下方。这些后面是布局的树和选项卡部分。这两个都是左对齐的。Firebug 告诉我“树”没有区域设置(“树”是其中包含树的 div 的 ID)。
HTML
<body class="claro">
<div
id="appLayout" class="demoLayout"
data-dojo-type="dijit.layout.BorderContainer"
data-dojo-props="design: 'headline'">
<div class="centerPanel"
data-dojo-type="dijit.layout.TabContainer"
data-dojo-props="region: 'center'">
<div data-dojo-type="dijit.layout.ContentPane" title="blah1" selected="true">
stuff
</div>
<div data-dojo-type="dijit.layout.ContentPane" title="blah2">
stuff
</div>
</div>
<div
id="tree"
class="edgePanel"
data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region: 'left', splitter: true">
</div>
<div
class="edgePanel"
data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region: 'bottom'">
footer stuffs
</div>
<div
class="edgePanel"
data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region: 'top'">
heading stuffs
</div>
</div>
</body>
js:
require(["dijit/layout/BorderContainer", "dijit/layout/TabContainer",
"dijit/layout/ContentPane", "dojo/parser"]);
require(["dijit/Tree"], function(Tree) {
tree = new Tree({ // create a tree
model: my_model_that_works
}, "tree"); // target HTML element's id
tree.startup();
});
另一个奇怪的事情是,我可以通过将“树”div更改为如下所示来使页面的全部内容消失:
<div
id="tree_container"
class="edgePanel"
data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region: 'left', splitter: true">
<div id="tree"></div>
</div>