Dojo ConfirmDialog скрывает кнопку отмены - PullRequest
0 голосов
/ 20 января 2019

У меня есть додзё ConfirmDialog, как показано ниже:

this.myDialog = new ConfirmDialog({
                   title: "My Dialog",
                   content: "Do you want to continue?",
                   class: "confirmDialog",
                   closable: false
                });

// change button labels
this.myDialog.set("buttonOk","Yes");
this.myDialog.set("buttonCancel","No");

// register events
this.myDialog.on("execute", function() { 
                              self.continueSomething() 
                            });

Позже, исходя из некоторых условий, я обновляю ConfirmDialog динамически, как показано ниже:

this.myDialog.set("title", "New Title");
this.myDialog.set("content", "Its too late. Press ok to re-route.");
this.myDialog.set("buttonOk","Ok");

На данном этапе у меня нет функции для кнопки Cancel. Как мне это скрыть?

Ни одна из следующих работ:

this.myDialog.cancelButton.hide();
//or
this.myDialog.cancelButton.set("display", "none");
//or 
this.myDialog.cancelButton.set("display", none);

Я могу отключить его как:

this.myDialog.cancelButton.set("disabled", true);

Но это не выглядит правильно. Я хочу полностью скрыть кнопку Cancel.

Как мне это сделать?

1 Ответ

0 голосов
/ 20 января 2019

cancelButton - это button Dijit, если вы хотите скрыть / показать это в последний раз, Вы должны получить доступ к его domNode, просто набрав this.myDialog.cancelButton.domNode и используйте dojo/dom-style, чтобы скрыть / показать, как показано ниже

let cancelBtnDom = this.myDialog.cancelButton.domNode;
domStyle.set(cancelBtnDom, 'display', 'none');

см. Ниже рабочий wnippet (отключить включение с помощью внешней кнопки)

require(["dijit/ConfirmDialog", "dojo/dom-style", "dojo/domReady!"], function(ConfirmDialog, domStyle){
    myDialog = new ConfirmDialog({
        title: "My ConfirmDialog",
        content: "Test content.",
        style: "width: 300px"
    },"dialog");
    
    let cancelBtn = myDialog.cancelButton.domNode;
    
    let switchBtn = document.getElementById("switch");
    
    switchBtn.addEventListener("click",function(){
     let display = domStyle.get(cancelBtn, "display") !== "none" ?  "none" : "";
     console.log(display);
      domStyle.set(myDialog.cancelButton.domNode, 'display', display);
    });
    
});
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/claro/claro.css" rel="stylesheet" />

<body class="claro">
  <div class="dialog"></div>
  <button onclick="myDialog.show();">show</button>
  <button id="switch" >enable/Disable cancel button</button>
</body>
...