Template7 - 模板页面的使用1( 从初始化参数中获取页面数据)
作者:hangge | 2016-08-28 09:35
1,Template7介绍
(1)Template7 是一个移动优先(mobile-first)的模板引擎,其特点是非常轻量,速度很快。
(2)Framework7 已经内置 Template7,无需包含额外的 JS 文件。
(3)Template7 也可以脱离 Framework7,单独使用。
下面通过一个样例演示如何使用 Template7 页面:
(1)在首页点击“打开列表页面”后跳转到新闻列表页。
同时要解析模板,必须提供必要的上下文(数据)对象。这里通过应用初始化参数 template7Data 设置全局的上下文数据。
(2)index.html(首页)
这个没什么特别的,直接就是一个链接。点击跳转到列表页面。
(3)list.html(列表页面)
我们通过 T7 的 each 表达式来遍历新闻集合并显示。
这里要注意页面上配置的 data-page="list"。说明这里用到的全局的上下文数据是从上面 Framework7 初始化的时候,template7Data 参数里面"page:list"对象中获取的。
(1)Template7 是一个移动优先(mobile-first)的模板引擎,其特点是非常轻量,速度很快。
(2)Framework7 已经内置 Template7,无需包含额外的 JS 文件。
(3)Template7 也可以脱离 Framework7,单独使用。
2,Template7页面
Template7 允许把新的 Ajax 页面、动态页面作为 Template7 模板来解析。下面通过一个样例演示如何使用 Template7 页面:
(1)在首页点击“打开列表页面”后跳转到新闻列表页。
(2)这个新页面中我们通过 Template7 模板技术,将上下文数据填充到页面中来。
3,样例代码
(1)my-app.js(应用的js)
要启用 Template7 页面功能,首先要在 Framework7 初始化的时候将其设置为 true。同时要解析模板,必须提供必要的上下文(数据)对象。这里通过应用初始化参数 template7Data 设置全局的上下文数据。
// 初始化 app var myApp = new Framework7({ precompileTemplates: true, template7Pages: true, //pages启用Template7 template7Data: { "page:list": { title: "最新资讯", news: [ { title: "欢迎访问hangge.com", date: "08-20" }, { title: "Framework7页面缓存设置", date: "08-19" }, { title: "奥运健儿勇夺金牌", date: "08-19" } ] } }, });
(2)index.html(首页)
这个没什么特别的,直接就是一个链接。点击跳转到列表页面。
<!DOCTYPE html> <html> <head> <!-- meta标签设置--> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <!-- app标题 --> <title>hangge.com</title> <!-- 使用iOS CSS主题样式--> <link rel="stylesheet" href="css/framework7.ios.min.css"> <!-- iOS related颜色样式 --> <link rel="stylesheet" href="css/framework7.ios.colors.min.css"> <!-- 自定义样式--> <link rel="stylesheet" href="css/my-app.css"> </head> <body> <!-- Status bar overlay for full screen mode (PhoneGap) --> <div class="statusbar-overlay"></div> <!-- 所有的Views视图 --> <div class="views"> <!-- 主视图(需要有"view-main"样式) --> <div class="view view-main"> <!-- 顶部导航栏 --> <div class="navbar"> <div class="navbar-inner"> <!-- 标题元素(为了让页面切换时标题文字有滑动效果,添加sliding样式) --> <div class="center sliding">hangge.com</div> </div> </div> <div class="pages navbar-through toolbar-through"> <!-- 首页, "data-page" 里设置页面名字 --> <div data-page="index" class="page"> <div class="page-content"> <div class="content-block"> <p><a href="list.html" class="open-list">打开列表页面</a></p> </div> </div> </div> </div> </div> </div> <!-- Framework7框架的js--> <script type="text/javascript" src="js/framework7.min.js"></script> <!-- 你的应用的js --> <script type="text/javascript" src="js/my-app.js"></script> </body> </html>
我们通过 T7 的 each 表达式来遍历新闻集合并显示。
这里要注意页面上配置的 data-page="list"。说明这里用到的全局的上下文数据是从上面 Framework7 初始化的时候,template7Data 参数里面"page:list"对象中获取的。
<!-- 这个页面由于会通过Ajax加载,所以我们不需要实现完整的布局,只需添加.navbar和.page即可--> <!-- 顶部导航栏 --> <div class="navbar"> <div class="navbar-inner"> <div class="left"> <a href="#" class="back link"> <i class="icon icon-back"></i> <span></span> </a> </div> <div class="center sliding">{{title}}</div> <div class="right"> </div> </div> </div> <div class="pages"> <div data-page="list" class="page"> <div class="page-content"> <div class="list-block"> <ul> <!-- 循环遍历新闻列表 --> {{#each this.news}} <li> <a href="#" class="item-link item-content"> <div class="item-media"><i class="icon icon-f7"></i></div> <div class="item-inner"> <div class="item-title">{{this.title}}</div> <div class="item-after">{{this.date}}</div> </div> </a> </li> {{/each}} </ul> </div> </div> </div> </div>
全部评论(0)