1 | <html> |
---|
2 | <head> |
---|
3 | <title>Demo using dojox.dtl._DomTemplated</title> |
---|
4 | <script type="text/javascript" src="../../../dojo/dojo.js" |
---|
5 | djConfig="isDebug: true, parseOnLoad: true"></script> |
---|
6 | <style type="text/css"> |
---|
7 | @import "../../../dijit/themes/tundra/tundra.css"; |
---|
8 | #pane { |
---|
9 | border: 1px solid darkblue; |
---|
10 | } |
---|
11 | </style> |
---|
12 | <script type="text/javascript"> |
---|
13 | dojo.require("dijit._WidgetBase"); |
---|
14 | dojo.require("dojox.dtl._DomTemplated"); |
---|
15 | dojo.require("dijit.form.Button"); |
---|
16 | dojo.require("dijit.layout.ContentPane"); |
---|
17 | |
---|
18 | dojo.declare("Fruit", [dijit._WidgetBase, dojox.dtl._DomTemplated], { |
---|
19 | widgetsInTemplate: true, |
---|
20 | items: ["apple", "banana", "orange"], |
---|
21 | keyUp: function(e){ |
---|
22 | if((e.type == "click" || e.keyCode == dojo.keys.ENTER) && this.input.value){ |
---|
23 | console.debug(this.button); |
---|
24 | var i = dojo.indexOf(this.items, this.input.value); |
---|
25 | if(i != -1){ |
---|
26 | this.items.splice(i, 1); |
---|
27 | }else{ |
---|
28 | this.items.push(this.input.value); |
---|
29 | } |
---|
30 | this.input.value = ""; |
---|
31 | this.render(); |
---|
32 | } |
---|
33 | }, |
---|
34 | // Note, the load tag here is superfluous, since _DomTemplate has a dojo.require for it. |
---|
35 | templateString: '<div><input dojoAttachEvent="onkeyup: keyUp" dojoAttachPoint="input"> <button dojoType="dijit.form.Button" dojoAttachPoint="button" dojoAttachEvent="onClick: keyUp">Add/Remove Item</button><div id="pane" dojoType="dijit.layout.ContentPane parsed"><ul><!--{% for item in items %}--><li><button dojoType="dijit.form.Button parsed" title="Fruit: {{ item }}" otherAttr2="x_{{item}}"><!--{{ item }}--><script type="dojo/connect" event="onClick" args="e">console.debug("You clicked", this.containerNode.innerHTML);</' + 'script></button></li><!--{% endfor %}--></ul></div></div>' |
---|
36 | }); |
---|
37 | |
---|
38 | dojo.require("dojo.parser"); |
---|
39 | </script> |
---|
40 | </head> |
---|
41 | <body class="tundra"> |
---|
42 | <div dojoType="Fruit" id="dtl"></div> |
---|
43 | </body> |
---|
44 | </html> |
---|