我尝试在 dojo (1.7.2) 中使用 dijit 进行布局,但结果看起来不像我想要的那样。
我的第一次尝试是尝试一些示例(此处为http://pastebin.com/Uy0pFmn3)的声明式样式,效果很好。然后我尝试将其转换为程序样式(此处为http://pastebin.com/qRWUQsQN),但它只显示了最后创建的布局。
我是否误解了 dijit 的布局是如何工作的,或者只是在这里忽略了一些小问题?谢谢
我尝试在 dojo (1.7.2) 中使用 dijit 进行布局,但结果看起来不像我想要的那样。
我的第一次尝试是尝试一些示例(此处为http://pastebin.com/Uy0pFmn3)的声明式样式,效果很好。然后我尝试将其转换为程序样式(此处为http://pastebin.com/qRWUQsQN),但它只显示了最后创建的布局。
我是否误解了 dijit 的布局是如何工作的,或者只是在这里忽略了一些小问题?谢谢
您必须添加 CSS 样式:
html, body {
height: 100%;
width: 100%;
}
对于 BorderContainer:
style="height:100%; width:100%"
编辑:好的,我明白了。我想我不能使用new ContentPane
,而是,new dijit.layout.ContentPane
(所以这里是最终版本http://pastebin.com/eYfeQUd8)。奇怪的,“只显示最后一个布局”是由我奇怪的 CSS 东西引起的。
让我感到困惑的一件事是为什么 newContentPane
不起作用?据我记得,一些例子确实是这样的
require(["dijit/layout/BorderContainer", "dijit/layout/TabContainer",
"dijit/layout/ContentPane"], function(BorderContainer) {new BorderContainer //STUFF//}
我在这里看到了问题。在您缺少的 pastebin 代码中,请声明函数参数,如下例所示...
您修改后的代码:
require(["dijit/layout/BorderContainer", "dijit/layout/TabContainer", "dijit/layout/ContentPane"], function( BorderContainer
, TabContainer
, ContentPane
) {
var appLayout = new BorderContainer({"design": "headline"}, '应用布局');
此外,需要参数的顺序也应该在函数参数内匹配..
瓦西姆·艾哈迈德五世