2011-10-13 5 views
8

Im inedito a Dojo e sto cercando di fare un po 'di ui, ma solo usando la modalità programmatica.Come creare un modulo Dojo dijit a livello di programmazione

Mi piacerebbe se qualcuno potesse mostrarmi qualche esempio su come creare un modulo programmaricamente utilizzando Dojo dijit.form.Form. Ho cercato qualche esempio, ma tutto quello che posso trovare è il modo dichiarativo di farlo.

risposta

8

Un altro oggetto soluzione orientata:

define([ 
"dojo/_base/declare", 
"dijit/form/Form", 
"dijit/form/Textarea", 
"dijit/form/Button" 
], 

function(declare, Form, TextArea, Button) { 
    return declare("mypackage.MyForm", Form, { 
     textarea: new TextArea({}), 

     submitButton: new Button({ 
      type: "submit", 
      label: "ready!" 
     }), 

     constructor: function(args) { 
      declare.safeMixin(this, args); 
     }, 

     onSubmit: function() { 
      alert(this.textarea.get('value')); 
     }, 

     postCreate: function() { 
      this.domNode.appendChild(this.textarea.domNode); 
      this.domNode.appendChild(this.submitButton.domNode); 
     } 
    }); 
} 
); 

basta semplicemente inserire un new mypackage.MyForm({}) in qualsiasi luogo ci si potrebbe aspettare un widget.

+1

Commento rapido: non dovresti inviare submitButton e textarea come variabili definite nel costruttore? Sono oggetti e finiranno nel prototipo in questo modo ... il che penso non sia raccomandato! – Merc

+0

Potresti includere un violino? cosa fa safeMixin? Grazie! – streetlight

6

È piuttosto semplice. Basta creare tutti i pezzi del modulo e quindi aggiungere tutti i pezzi al rispettivo genitore. Per creare gli oggetti form, come qualsiasi oggetto dijit, si passa al costruttore un param oggetto , e un DOMNode di posizionarlo a, in questo modo:

var resetbtn = new dijit.form.Button({ 
    type: 'reset', 
    label: 'Reset' 
}, dojo.doc.createElement('button')); 

L'esempio completo è here. Per scoprire quali proprietà possono essere aggiunte all'oggetto params, vedere API Docs. Qualsiasi proprietà può essere aggiunta all'elenco dei parametri.

+0

Grazie utile – Jmsegrev