dojo 1.8 - 命名和销毁对象的实例

时间:2013-02-04 03:30:02

标签: dojo

嗨如何命名和销毁对象的实例? 请参阅jsfiddle中的my working

declare("obj_Button", [_WidgetBase], {
        buildRendering: function () {
            // create the DOM for this widget
            this.domNode = domConstruct.create("button", {
                innerHTML: "New Button Instance"
            });
        }
    });

    on(dom.byId('btn1'), "click", function(evt)
    {
        (new obj_Button()).placeAt(dom.byId('id'));
         //name the instance
    });

    parser.parse(); // check out more!

    on(dom.byId('btn2'), "click", function(evt)
    {
    // destroy the instance by name, not object
    });

请指教。感谢

1 个答案:

答案 0 :(得分:2)

如果您知道窗口小部件的ID,可以使用“dijit / registry”获取窗口小部件,然后将其销毁:

require(["dijit/registry"], function(registry) {
   registry.byId("myWidgetId").destroyRecursive();
});

如果您只知道dom节点的ID,则可以使用registry.findWidgets()(如果窗口小部件是dom节点的子节点)或者registry.getEnclosingWidget()(如果dom节点是窗口小部件的子节点) )。

请参阅http://dojotoolkit.org/reference-guide/1.8/dijit/registry.html#finding-all-widgets-underneath-a-dom-node