我是dojo的完整新手,但不是JavaScript。
我正在测试功能并尝试构建一个基本的dijit.layout.StackContainer(以声明方式和编程方式)。我所拥有的是我的堆栈容器根据第一个子元素的大小调整大小。我想要的是根据我放置的元素的大小来确定它的大小。我怎样才能做到这一点?我查看了参考指南,API文档等,但似乎没有任何帮助。 :(
提前致谢
我能够让它工作的唯一方法是在我希望附加我的StackContainer的元素上定义height属性,然后在声明StackContainer的style属性时手动查找height属性。像这样......
<div id="content" style="height: 100%; background-color: green;"></div>
<script>
var domNode, controller, container;
domNode = document.getElementById('content');
controller = new StackController({
containerId:"mainStack"
}).placeAt(domNode);
container = new StackContainer({
id: "mainStack",
isLayoutContainer: true,
style: "background-color: yellow; height: "+domNode.style.height
});
container.addChild(new ContentPane({
title: "Search for Images...",
tooltip: "Click here to begin your search.",
content: searchTemplate
}));
container.addChild(new ContentPane({
title: "View Results..",
tooltip: "After you search for a topic, click here to view your results.",
content: resultTemplate
}));
container.placeAt(domNode);
container.startup();
controller.startup();
</script>
这很有效,但由于缺乏道场经验,我感觉自己就像是黑客。有没有人有任何想法或建议?
答案 0 :(得分:0)
您希望将StackContainer上的doLayout
属性设置为false。根据{{3}}:
doLayout
Defined by dijit/layout/StackContainer
If true, change the size of my currently displayed child to match my size
这相当于
container = new StackContainer({
id: "mainStack",
isLayoutContainer: true,
style: "background-color: yellow;",
doLayout:false
});
孩子们可能还需要doLayout:false
。