网络编程
位置:首页>> 网络编程>> JavaScript>> jQuery模板提案(13)

jQuery模板提案(13)

作者:dishuipiaoxiang 来源:Denis'Blog 发布时间:2010-03-30 18:27:00 

标签:jquery,模板,Javascript,对象

脚本与样式模板容器

在目前的提案中,我们建议在<script id="template" type="text/html"></script>元素中包裹模板。有人提议,较好的选择是用<style id="template" type="text/html"></style>元素,因为样式更好的体现了模板表象的性质。

样式元素的缺点在于不允许出现在文档的body中,如果你不能修改head元素的内容--例如,你正在使用内容管理系统(CMS)工作,你就无法创建模板。

从技术上讲,当前的提案与用SCRIPT或STYLE包裹模板是兼容的。如果你愿意,你可以使用Style元素并替换type属性。

模板应是真正的DOM元素

只有几个人建议模板应代表真正的DOM元素,这也与ASP . NET Ajax 库创建模板的方法相似。换句话说,给模板使用标准的DOM元素,用display:none隐藏模板。

使用真正的DOM元素模板的主要缺点在于使用真正的DOM元素会导致不良副作用。例如,考虑下面的代码:

<div id="template" style="display:none">
  <img src="{%= imageUrl %}" />
  <br /> {% imageTitle %}
</div>

在这种情况下,浏览器会尝试加载位于{%= imageUrl } 地址的图片,这并不是你向发生的。像这样的例子有很多,一个表达式会导致意想不到的副作用或无效的 HTML。例如,如果是在form中,模板中的input可能post一个实际的值。另一个很好的例子是在<div id="{ = foo %}"/>其中的id属性包含无效的值。

修订历史

  • 2010年2月27日--公布初步的提案;

  • 2010年3月2日--针对社区反馈更新提案;

    • 将renderTemplate() 重命名为 template() ;

    • 将分隔符{{ ... }} 改为[[ ... ]] ;

    • 增加[[! ... ]] 用来显示无编码的HTML;

    • 移除上下文变量和诸如$id()、$index、writeHtml()和write() 的方法;

    • 增加rendering()函数;

    • 增加templateSetup()函数;

  • 2010年3月9日--针对John Resig 的原型和社区的反馈更新提案;

    • 将template() 重命名为render() ;

    • 新增DOM操作(如append());

    • 将表达式中的分隔符改为{%= ... %} ,代码中的分隔符改为{% ... %} ;

    • 删除templateSetup()方法。

  • 2010年3月16日--新增下面的评论章节--Steven Black ;

如有翻译欠妥之处,请发邮件(dexibe@gmail.com)联系本人

译者:Denis deng

译者网站:Denis'Blog

原文地址:jQuery Templates Proposal

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com