Podczas tworzenia okna dialogowego, można użyj widgetu (np. formularza) jako treści. Możesz na przykład:
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()
jest dostarczany przez Dojo. Ładuje zależności (formularz, okno dialogowe itp.), A następnie uruchamia daną funkcję, która tworzy widżety. Jednakże, ponieważ uwzględniliśmy domReady!
wśród zależności, Dojo upewnia się, że DOM jest w pełni załadowany i gotowy jako pierwszy.
Ponieważ w tej funkcji również mam dia.show()
, okno dialogowe będzie wyświetlane zaraz po otwarciu strony. Powiedzmy, że chciał pokazać okno kiedy jakiś przycisk na swojej stronie kliknięciu zamiast:
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
Mówiąc o oknach i Dojo, można rozważyć czytając moje odpowiedzi na [prosta implementacja logowania dla Dojo MVC] (http: // stackoverflow.com/questions/10984855/simple-login-implementation-for-dojo-mvc/11017097#11017097) i [Dojo Dialog z przyciskiem potwierdzenia] (http://stackoverflow.com/questions/10401512/dojo-dialog-with -confirmation-button/10405938 # 10405938). – phusick