WEB开发网
开发学院软件开发Python DojoX DTL 入门 阅读

DojoX DTL 入门

 2009-11-18 00:00:00 来源:WEB开发网   
核心提示: 清单 5. HTML 模板示例<html><head><title>dojo.DTLDemo</title><scripttype="text/javascript"src="dojo/dojo.js"


清单 5. HTML 模板示例
<html> 
 <head> 
 <title>dojo.DTL Demo</title> 
 <script type="text/javascript" src="dojo/dojo.js" djConfig="parseOnLoad: true"> 
 </script> 
 <script type="text/javascript"> 
   dojo.require("dijit.dijit"); 
 dojo.require("dojox.dtl._HtmlTemplated"); 
 dojo.require("dojo.parser"); 
 dojo.declare("Fruit", [dijit._Widget, dojox.dtl._HtmlTemplated], { 
  oldRepl: "Fruit: ", 
   items: ["apple", "banana", "orange"], 
  keyUp: function(e){ 
  if(e.keyCode == dojo.keys.ENTER){ 
  var i = dojo.indexOf(this.items, e.target.value); 
  if(i != -1){ 
  this.items.splice(i, 1); 
  }else{ 
  this.items.push(e.target.value); 
  } 
  e.target.value = ""; 
  this.render(); 
  dojo.query("input", this.domNode).forEach("item.focus();"); 
    } 
   }, 
templateString: '<div><input dojoAttachEvent="onkeyup: keyUp"> 
<ul>{% for item in items %}<li>{{oldRepl}} {{ item }}</li>{% endfor %}</ul> 
</div>' 
   }); 
  </script> 
 </head> 
 <body> 
  <div dojoType="Fruit"></div> 
 </body> 
</html> 

首先创建了 widget 类 Fruit,定义了变量 oldRepl 和数据 items,以及 keyUp 函数,这个函数通过 dojoAttachEvent 与模板里的 input 元素的 onkeyup 事件绑定。在 templateString 里定义了一个输入框和一个列表,通过 for 标签输出水果列表。

在浏览器里打开该文件,显示效果如下:


图 1. HTML 模板示例效果图
DojoX DTL 入门

在输入框中输入水果名字,如果该水果名字在列表中已经存在,则从列表中删除该水果条目。如果列表中不存在该水果,则将该水果添加到列表中。

小结

在 Web 开发中使用模板可以将页面展示和业务处理逻辑分离,降低模块之间的耦合,从而使系统更灵活,更能适应需求的改变,更易于维护。DojoX DTL 完全实现了 Django 模板语言的语法特性,并增加了对 HTML DOM 节点的支持。本文简要介绍了 DTL 的语法及 DojoX DTL 的使用,我们可以在 dojo.query 中或创建 widget,以及在任何需要输出数据改变而格式不变的地方使用 DojoX DTL。DojoX DTL 还有很多特性,如支持使用 DataStore 作为数据源,支持自定义标签和 filter,在开发中使用这些特性往往能起到事半功倍的作用。

上一页  1 2 3 4 5 

Tags:DojoX DTL 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接