边框容器区域无法在自定义小部件中正确显示
Border Container regions dont display properly in custom widget
我有一个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>
为什么显示为:
顶部窗格
前导窗格
中央窗格
后窗格
底部窗格
感谢
这是因为dijit/_WidgetsInTemplateMixin
不支持像BorderContainer
:这样的布局小部件
dijit_WidgetsInTemplateMixin mixin不支持添加布局小部件作为子部件。特别是startup()和resize()调用孩子们。
出于某种原因,它在控制台中抛出一个错误,表示您要注册的BorderContainer
已经注册。因为小部件没有正确地呈现,所以它显示的是纯HTML,这就是您可以看到的结果。
正确的解决方案不是在模板中使用布局小部件,但似乎也可行的是以声明方式使用小部件。例如:http://jsfiddle.net/8vdu1u72/
相关文章:
- 如果用户输入的长度小于最小长度,则显示错误消息
- 我有一个字段计算,如果结果低于 60,则需要显示最小值
- Jdewit Timepicker 在文本和图标单击上显示小部件
- 如何仅在存在最小值和最大值时才显示错误消息
- 肉桂:修改“显示桌面”(+其他系统小程序)图标
- 仅在较小的屏幕上显示图像
- 当达到最小值和最大值时,防止在输入中显示额外的文本
- 如何在d3.js中显示年时间刻度上的最小日刻度
- I'我试图在网页中添加一个javascript小片段,但它只是在页面上显示代码
- 如何在客户端的元窗口小部件(JavaScript)中获取和显示更新的域模型
- 如何在JQuery数据选择器中显示小时数
- setInterval代码的优化建议,该代码显示每秒出生的小狗、小猫等数量
- 具有固定最小值的jQuery UI滑块:显示最小范围,而不是最小绝对值
- 图表JS未显示悬停时的小数据
- HTML画布和正确显示的一个小问题
- 使元素显示在最小屏幕大小上
- 显示与用户输入匹配的部分数组值
- 在HighChart中以最小数量显示点
- jqueryui小部件显示为文本输入
- 动态地将小部件显示到模态中