46 lines
1.8 KiB
HTML
46 lines
1.8 KiB
HTML
|
<html>
|
||
|
<head>
|
||
|
<title>Demo using dojox.dtl._Templated</title>
|
||
|
<script type="text/javascript" src="../../../dojo/dojo.js"
|
||
|
djConfig="isDebug: true, parseOnLoad: true"></script>
|
||
|
<script type="text/javascript" src="../../../dijit/dijit.js"></script>
|
||
|
<style type="text/css">
|
||
|
@import "../../../dijit/themes/tundra/tundra.css";
|
||
|
</style>
|
||
|
<script type="text/javascript">
|
||
|
dojo.require("dojox.dtl._HtmlTemplated");
|
||
|
dojo.require("dijit.form.Button");
|
||
|
|
||
|
dojo.declare("Fruit", [dijit._Widget, dojox.dtl._HtmlTemplated], {
|
||
|
widgetsInTemplate: true,
|
||
|
items: ["apple", "banana", "orange"],
|
||
|
keyUp: function(e){
|
||
|
if((e.type == "click" || e.keyCode == dojo.keys.ENTER) && this.input.value){
|
||
|
var i = dojo.indexOf(this.items, this.input.value);
|
||
|
if(i != -1){
|
||
|
this.items.splice(i, 1);
|
||
|
}else{
|
||
|
this.items.push(this.input.value);
|
||
|
}
|
||
|
this.input.value = "";
|
||
|
this.render();
|
||
|
}
|
||
|
},
|
||
|
postCreate: function(){
|
||
|
this.render();
|
||
|
dojo.connect(this.button, "onClick", this, "keyUp");
|
||
|
},
|
||
|
debug: function(e, verb, fruit){
|
||
|
console.debug("You " + verb + " a:", fruit);
|
||
|
},
|
||
|
// Note, the load tag here is superfluous, since _HtmlTemplate has a dojo.require for it.
|
||
|
templateString: '<!--{% load dojox.dtl.contrib.dijit %}--><div><input dojoAttachEvent="onkeyup: keyUp" dojoAttachPoint="input"> <button dojoType="dijit.form.Button" dojoAttachPoint="button">Add/Remove Item</button><ul><!--{% for item in items %}--><li onclick="debug \'ate\' item"><!--{{ item }}--></li><!--{% endfor %}--></ul></div>'
|
||
|
});
|
||
|
|
||
|
dojo.require("dojo.parser");
|
||
|
</script>
|
||
|
<body class="tundra">
|
||
|
<div dojoType="Fruit"></div>
|
||
|
</body>
|
||
|
</head>
|
||
|
</html>
|