DOJO :无法使用新关键字初始化 js

DOJO : Not able to initialize the js Using New Keyword

本文关键字:关键字 初始化 js DOJO      更新时间:2023-09-26

我有一个链接,如果我点击链接,我需要使用如下所示的新关键字调用另一个 Js。

<a style="padding: 2px 15px" data-dojo-attach-event="click:display">Form</a>
display : function(){
new com.cn.clb.dr.mytasks.BrandForm({
            formInfo: brandForm,
            brand: brandName
        }, formPlacer).initialize();
}

这里第一次(第一次页面加载)上面的js调用完美,之后,我被点击了上面的js没有调用的链接。

在JS中,我包含了postcreate()和initialize()。

请告诉我如何调用 js。

根据 Dijit 告诉您正在尝试使用已注册的 ID 注册小部件的其他信息,您需要先销毁您创建的第一个小部件,然后再基于同一元素创建另一个小部件。

此外,传递给 widget 构造函数的第二个参数表示 srcNodeRef ,这是一个将被替换为 widget 自己的 DOM 的节点。 我在这里有点猜测,因为没有太多上下文,但您可能不想多次将相同的节点引用传递给它,因为它可能在第一次之后无效。

这是一个我希望更好地工作的示例,如果小部件存在于使用 destroyRecursive 的先前调用中,则会销毁该小部件,并使用placeAt将小部件放置在父节点下,而不是使用 srcNodeRef 参数替换节点。

display : function(){
    var parentNode;
    if (this._displayWidget) {
        parentNode = this._displayWidget.domNode.parentNode;
        this._displayWidget.destroyRecursive();
    }
    else {
        parentNode = formPlacer.parentNode;
    }
    this._displayWidget = new com.cn.clb.dr.mytasks.BrandForm({
        formInfo: brandForm,
        brand: brandName
    }).placeAt(parentNode).initialize();
}

请注意,这目前没有考虑父节点中同级节点中同级之间的位置;应该可以相应地修改placeAt调用。

最后我得到了修复,我们在 html 文件中使用 ID 属性,因此在 html 中使用数据 dojo-attach-point 而不是使用 ID。在此更改之后,它现在工作正常。

而不是使用 id 我使用数据道场连接点。