在特定节点上附加小部件
Attaching a Widget at a specific node
每当
初始化新小部件时,我都需要向特定div 添加一个自定义小部件。
我相信最标准的方法是使用某些链接
(new MyFirstWidget()).placeAt('myDiv');
我对这种方法并不热衷,因为它在每次初始化时都需要placeAt()
的详细信息,就我而言,我需要强制这种类型的小部件始终嵌套在特定div 中。
相反,我想在小部件类中添加此信息。
目前我正在使用以下代码,在postCreate()
中使用placeAt()
工作正常。
我想知道:
postCreate()
是正确的地方吗?可以添加到更好的点在小部件生命周期中?- 我注意到在调用
this.placeAt()
之前postCreate()
小部件被标记为rendered
,而实际上有未渲染,因为尚未添加到 DOM 中...为什么那是?
define([
'dojo/_base/declare',
'dojo/dom-construct',
'dijit/_WidgetBase',
'dijit/_TemplatedMixin',
'dojo/text!./templates/PanelBasic.html'
], function (
declare,
domConstruct,
_WidgetBase,
_TemplatedMixin,
template
) {
'use strict';
var attachTo = 'myPanels';
return declare([_WidgetBase, _TemplatedMixin], {
templateString: template,
ntvType: 'Panel',
constructor: function () {
},
postCreate: function () {
this.inherited(arguments);
this.placeAt(attachTo);
}
});
});
postCreate
似乎是生命周期中合适的时间点。 不过,您可能不想忘记先打电话给this.inherited(arguments)
。
_rendered
标志是dijit/_TemplatedMixin
内部的,在运行buildRendering
后设置为 true,负责从小部件的模板创建 DOM 元素。 从这个意义上说,它已经被"渲染"(从模板字符串到 DOM(,尽管它还没有在文档流中。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 节点导出返回一个空对象
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 可以前端maven插件使用节点,npm已经安装
- 在jstree中,如何将指定的节点集中到大型树上
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 将属性从 DOM 节点复制到 dijit 小部件中
- vis.js在盒子节点内添加一个小圆圈
- 节点.js解析路由的最小函数
- 如何读取具有部分选定子节点的父节点
- D3 力布局:如何保持节点之间的给定最小距离
- 如何通过按 id 注册但未在任何 DOM 节点中引用来删除 dojo 小部件
- 在特定节点上附加小部件
- 节点.js最小的设置和什么是包.json
- 当向数据库插入大量记录时,我应该如何编写节点脚本以最小化内存使用
- 指定infoVis JIT图中节点之间的最小距离
- reactjs应用程序中的reactjs小部件,导致----不变冲突:ReactMount:两个有效但不相等的节点具有相
- 在多个节点之间查找成本最小的路径
- 如何根据我的依赖项确定我的节点应用支持的最小/最大节点版本
- 将html节点转换为一行字符串(最小化)