在dojo 1.8版本中,我使用this._startupWidgets来获取在template.But中声明的小部件。在dojo 1.9版本中,我得到this._startupwidgets为null。所以我不知道如何在dojo 1.9版本中获取它?
答案 0 :(得分:1)
如果您实际上正在寻找参考小部件中包含的小部件,请尝试:
var widget; // The widget you care about
require(["dijit/registry"], function(registry) {
registry.findWidgets(widget.domNode);
});
应该注意私有变量/ API以_
开头。因此,它们会在没有通知的情况下消失。考虑到这一点,您可以尝试查看widget._attachPoints
,其中列出了模板中所有附加点的名称。这也将为您提供普通DOM节点的名称,而不仅仅是引用小部件的附加点的名称。一个简单的过滤器将为您提取小部件:
var widget; // The widget you care about
require(["dojo/_base/array"], function(array) {
var templateWidgets = array.filter(widget._attachPoints, function(w) {
return !!widget[w].domNode;
});
});