Quando si crea una finestra di dialogo, è possibile utilizzare un widget (ad esempio un modulo) come contenuto. Così, per esempio, si potrebbe fare:
require([
"dijit/Dialog",
"dijit/form/Form",
"dijit/form/TextBox",
"dijit/form/Button",
"dojo/domReady!"
], function(Dialog, Form, TextBox, Button)
{
var form = new Form();
new TextBox({
placeHolder: "Name"
}).placeAt(form.containerNode);
new Button({
label: "OK"
}).placeAt(form.containerNode);
var dia = new Dialog({
content: form,
title: "Dialog with form",
style: "width: 300px; height: 300px;"
});
form.startup();
dia.show();
});//~require
require()
è fornito da Dojo. Carica le dipendenze (Form, Dialog ecc.) E quindi esegue la funzione specificata che crea i widget. Tuttavia, poiché includiamo domReady!
tra le dipendenze, Dojo si assicura che il DOM sia completamente caricato e pronto per primo.
Perché ho dia.show()
anche in quella funzione, la finestra di dialogo verrà effettivamente visualizzata non appena viene aperta la pagina. Diciamo che si voleva mostrare la finestra di dialogo quando qualche tasto sulla tua pagina viene cliccato, invece:
require([
"dijit/Dialog",
"dijit/form/Form",
"dijit/form/TextBox",
"dijit/form/Button",
"dojo/on", // Added this!
"dojo/domReady!"
], function(Dialog, Form, TextBox, Button, onEvent)
{
// ... as above, we create the dialog and form when the page loads
// but it remains hidden until we call dia.show() ...
form.startup();
// dia.show(); Commented out this!
onEvent(document.getElementById("someButtonOnYourPage"), "click",
function()
{
dia.show();
});
});//~require
Parlando di finestre di dialogo e Dojo, si può considerare la lettura mie risposte alle [implementazione Accesso semplice per Dojo MVC] (http: // stackoverflow.com/questions/10984855/simple-login-implementation-for-dojo-mvc/11017097#11017097) e [Dialogo Dojo con pulsante di conferma] (http://stackoverflow.com/questions/10401512/dojo-dialog-with -confirmation-button/10405938 # 10405938). – phusick