热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

迷你MVVM框架avalonjs学习教程13、模板引用

稍为复杂一点的网站都是多个前端工程师合作而成,因此分工是必需的。简单一点的分工就是一个人负责一个频道,某个页面是由一个人全部做的;但如果涉及到一个页面非常复杂,需要多个人同时动工呢





稍为复杂一点的网站都是多个前端工程师合作而成,因此分工是必需的。简单一点的分工就是一个人负责一个频道,某个页面是由一个人全部做的;但如果涉及到一个页面非常复杂,需要多个人同时动工呢?于是到模板的出场时间了。



模板有两种,一种是嵌入到页面内的模板,一种是独立成子页面的模板。这两种avalon都支持。前者通常是使用type为浏览器无法识别的MIME类型的script标签,display:none的textarea标签或noscript标签(0.94后支持,建议使用它)作为模板容器,最近HTML5出了一个新的template标签,大家也不妨用一用。一般情况下,它是用于放置弹出层的内容。另一个模板,则需要通过AJAX请求来加载它们,它们适用范围更广,并且重用性更好。



对于页面内的模板,我们可以使用ms-include=”expr”绑定,对于独立于页面的模板,我们可以使用ms-include-src=”expr”绑定。ms-include要求对应一个ID(换言之,作为模板容器的script等标签必须指定ID),ms-include-src要求对应一个路径。需要注意的是ms-include或ms-include-src的属性值默认都是对应VM的一个属性,当作是一个变量,如果想直接使用字符串,那么需要使用双重引号














{{content}}








迷你MVVM框架 avalonjs 学习教程13、模板引用
ms-include与ms-include-src的属性值可以添加插值表达式,见下面例子,不过注意需要打开服务器,因为用到AJAX请求。



有四个页面,一个主页面与三个独立的子模板,它们都放在一起,内容分别如下。



include.html













ms-include










includeTemplate1.html



这是模板1


生成于{{ new Date | date("yyyy MM dd:HH:mm:ss")}}


生成于{{ "2011/07/08" | date("yyyy MM dd:HH:mm:ss")}}


生成于{{ "2011-07-08" | date("yyyy MM dd:HH:mm:ss")}}


生成于{{ "01-10-2000" | date("yyyy MM dd:HH:mm:ss")}}


生成于{{ "07 04,2000" | date("yyyy MM dd:HH:mm:ss")}}


生成于{{ "3 14,2000" | date("yyyy MM dd:HH:mm:ss")}}


生成于{{ 1373021259229 | date("yyyy MM dd:HH:mm:ss")}}


生成于{{ "1373021259229" | date("yyyy MM dd:HH:mm:ss")}}


值得注意的是,new Date可传的格式类型非常多,但不是所有浏览器都支持这么多,详看这里




includeTemplate2.html









includeTemplate3.html




  • 第 {{$index+1}} 个元素: {{el}} 点我删除


添加新元素 ,然后回车




迷你MVVM框架 avalonjs 学习教程13、模板引用



如果大家想在模板加载后,加工一下模板,可以使用data-include-loaded来指定回调的名字。



如果大家想在模板扫描后,隐藏loading什么的,可以使用data-include-rendered来指定回调的名字。


















temp.html













include content





迷你MVVM框架 avalonjs 学习教程13、模板引用



最后我们看avalon.templateCache,所有ms-include-src加载的模板都会缓存在这里,从而有效地减少请求数。并且这个东西还有一个额外的好处,我们的JS与CSS最终会压缩合并,对于这些模板我们也想把它们合并到JS文件里面,它就有用武之地了。这也是我们在第一节看到的那样,把requirejs加载回来的模板都放在avalon.templateCache里,与ms-include-src一起使用了。



















迷你MVVM框架 avalonjs 学习教程13、模板引用







推荐阅读
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文介绍了在Windows Server 2003环境下,使用XAMPP Lite 1.7.1和DotProject 2.1.3时遇到的日历和甘特图中文乱码问题的解决方案。通过修改相关文件和配置,可以有效解决这些问题。 ... [详细]
  • 探讨在 JavaScript 中使用不同方向的 for 循环来实现跟随鼠标的 div 动画时,为什么会出现不同的视觉效果。 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
author-avatar
mobiledu2502853787
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有