DOJO 获取小部件的 ID
DOJO getting id of a widget
我正在使用dojo.parse
来初始化HTML中的一些小部件。
我需要获取被初始化并传递给另一个函数的小部件的 ID。使用var test = _WidgetBase.id;
我无法获得 ID。
知道如何解决吗?
define([
'dojo/_base/declare',
'dijit/_WidgetBase',
'dijit/_TemplatedMixin',
'dijit/_AttachMixin',
'dojo/text!./templates/Button.html',
'dojo/dom-style',
'dojo/_base/fx',
'dojo/_base/lang',
'dojo/on',
'dojo/mouse',
'require',
'ntv/WebpartInitializer',
], function (declare, _WidgetBase, _TemplatedMixin, _AttachMixin, template, domStyle, fx, lang, on, mouse, require, WebpartInitializer) {
// automatically generated properties from state
var test = _WidgetBase.id; // PROBLEM HERE
var webpartInitializer = new WebpartInitializer(test);
var autoProperties = webpartInitializer.getProperties(),
// custom properties
customs = {
templateString: template,
ntvType: 'Button',
baseClass: "button",
postCreate: function () {
var domNode = this.domNode;
},
_setTitleAttr: function () {
console.log('++++++ test');
}
};
// create new class mixin
return declare([_WidgetBase, _TemplatedMixin, _AttachMixin], lang.mixin(customs, autoProperties));
});
由于您的小部件尚未初始化,因此尚未分配 ID。该 ID 将在运行 postMixInProperties 后的小部件生命周期中可用:
require([
'dojo/_base/declare',
'dijit/_WidgetBase',
], function (declare, _WidgetBase) {
declare("CustomWidget", [
_WidgetBase
], {
preamble: function () {
console.log('preamble: ' + this.id);
},
constructor: function () {
console.log('constructor: ' + this.id);
},
postMixInProperties: function () {
console.log('postMixInProperties: ' + this.id);
},
buildRendering: function () {
console.log('buildRendering: ' + this.id);
},
postCreate: function () {
console.log('postCreate: ' + this.id);
},
startup: function () {
console.log('startup: ' + this.id);
}
});
var customWidget = new CustomWidget();
customWidget.startup();
});
给出以下结果:
preamble:
constructor:
postMixInProperties:
buildRendering: CustomWidget_0
postCreate: CustomWidget_0
startup: CustomWidget_0
因此,如果您需要使用该ID执行某些操作,则必须在buildRendering,postCreate或startup中执行此操作。
相关文章:
- 如何在工具提示窗口小部件中获取悬停元素的id
- 获取整数数组中的第一个最小可用整数键/ID
- 如何通过按 id 注册但未在任何 DOM 节点中引用来删除 dojo 小部件
- DOJO 获取小部件的 ID
- 在不知情的情况下获取小程序的文本框id
- 如何设置 Dojo 小部件的内部输入元素的 ID
- jQuery UI:根据类而不是id添加小部件
- 最小高度、高度、类别、id优先级
- qoxdoo创建具有特定id的小部件
- 通过REST API调用获取TFS仪表板小部件ID
- Javascript的滚动大小调整ID与最小值首先应用
- 获取小部件的当前ID
- Dojo小部件id已经注册
- 这个小部件ID已经被使用过了.当使用“请求”时
- 试图注册id== valore0的小部件,但该id已注册
- jQuery触发事件的id的元素运行处理程序定义的类在包含的小枝模板
- 不知道为什么日期选择器小部件不能工作,也不知道为什么id选择器不能自动填充结果字段
- YUI工具提示小部件传递类名而不是id
- 当以编程方式实例化小部件时,Dojo重复ID错误,但不是以声明方式
- 已尝试注册id为==buttonNode的小部件,但该id已注册