Dojo:在自定义小部件中布局小部件
Dojo : Layout widgets inside the Custom widget
我有一个带有dojo布局小部件的自定义dojo小部件
模板如下
<div>
<div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="gutters:false" id="mainPanel" style="padding: 0px">
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top', splitter:false" style="padding: 0px">
Saartha Labs Pvt Ltd
</div>
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top', gutters: false, splitter:false" style="padding: 0px" >
<div id="toolBar"></div>
</div>
<div id="map-div" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center', splitter:false"></div>
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'bottom', splitter:false" style="display: none" ></div>
</div>
</div>
和下面的自定义小工具"Canvas.js">
define([
"dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_WidgetsInTemplateMixin",
"dijit/_OnDijitClickMixin",
"dijit/_TemplatedMixin",
"dojo/text!./canvas.html",
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane"
], function (declare, _WidgetBase,_WidgetsInTemplateMixin, _OnDijitClickMixin,_TemplatedMixin, template) {
return declare([_WidgetBase,_OnDijitClickMixin, _TemplatedMixin,_WidgetsInTemplateMixin], {
templateString: template
// your custom code goes here
});
});
使用时,尝试将画布与新它抛出如下错误。
require([
"bhuvi/canvas/Canvas",
"dojo/domReady!"],
function(Canvas){
var canvas = new Canvas();
canvas.placeAt(window.document.body);
});
错误为
"尝试使用id=mainPanel注册小部件,但该id已注册">
永远不要在小部件模板中使用ID。ID必须是唯一的,所以除非你的ID是动态生成的(在这种情况下不是(,否则如果你创建了多个小部件实例,你的ID就不会是唯一的。
相反,使用data-dojo-attach-point
机制,例如:
<div>
<div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="gutters:false"
data-dojo-attach-point="mainPanel" style="padding: 0px">
<!-- Rest of the code -->
</div>
</div>
现在,如果需要访问该小部件,可以使用this.mainPanel
。
即使您没有创建小部件的多个实例,使用连接点也会更好,因为您永远不知道屏幕后面会发生什么。
需要注意的是:布局小部件不受dijit/_WidgetsInTemplateMixin
mixin的官方支持,所以在使用它们时要小心。然而,这并不是你问题的原因。
var dojoConfig = {
async: true,
parseOnLoad: false
}
parseOnLoad应为false
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 使用agility.js进行页面布局和合成
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在输入字段中将最小金额设置为
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 如何实现此布局
- 有没有一个javascript图形绘制库可以进行气球树布局
- 砌体不能填补小缺口
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 限制javascript变量的最小/最大整数
- HTML5在画布中加载较小的图像并保存实际大小的图像
- Gridster停止:获取新的画布布局,而不是1个小部件
- 具有多个不同高度小部件的两列布局,如何使小部件可折叠并保持页面的流动性
- 在 extJS 中设置边框布局的最小高度
- D3 力布局:如何保持节点之间的给定最小距离
- 在dojo自定义小部件中布局dijit
- 我如何使布局小部件在w2ui扩展到全高度
- Dojo:在自定义小部件中布局小部件
- 如何使页面布局响应窗口大小的每个连续小变化