[关闭]
@Wangww0925 2020-07-03T05:39:33.000000Z 字数 1603 阅读 211

jsRender/jsViews 引入外部模板引擎

模板引擎 jsRender/jsViews


例子文件位置: F:\web\w-0 笔记\Template\jsRender或jsViews 引入外部模板引擎

例子

一:模板文件

模板文件 text.tmpl.html

  1. <p>名称:{^{:name}}</p>

模板文件 nav.html

  1. {{for nav}}
  2. <p>{^{:#data}}</p>
  3. {{/for}}

二、调用模板

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
  7. <script src="jsrender.min.js"></script>
  8. <script src="template.js"></script>
  9. </head>
  10. <body>
  11. <p>首页</p>
  12. <text id="text"><text>
  13. <div id="bbb"><div>
  14. </body>
  15. <script>
  16. // 调用模板
  17. // new TempRender({ src: './', name: 'text', selector: '#text', data: {name: 'www'} });
  18. // 调用自定义模板文件名
  19. new TempRender({ srcCustom: true, src: './nav.html', selector: '#bbb', data: { nav: ['www', 'abc', '123']} });
  20. </script>
  21. </html>

三、封装调用模板TempRender方法

  1. (function () {
  2. var that = ''
  3. var TempRender = function (options) {
  4. // console.log(options);
  5. that = this
  6. this.path = options.srcCustom ? options.src : options.src + options.name + '.tmpl.html'; // 模板文件所在位置(包含文件名)【此路径根据调用文件的位置为起始位置】
  7. this.selector = options.selector; // 调用模板的标签 id class等,如 '#nav'
  8. this.data = options.data; // 数据
  9. this.initRender(this); // 此处传入this是为了防止that被污染而导致页面渲染错误
  10. }
  11. // 此处方法内不能使用that,如果出现多出调用,使用that会污染数据
  12. TempRender.prototype.initRender = function (obj) {
  13. $.when($.get(obj.path))
  14. .done(function (tmplData) {
  15. // tmplData 模板文件内容
  16. $.templates({tmpl: tmplData});
  17. console.log(obj.selector, $.render.tmpl(obj.data))
  18. $(obj.selector).html($.render.tmpl(obj.data));
  19. })
  20. }
  21. window.TempRender = TempRender
  22. })()

参数说明

  1. srcCustom 自定义模板文件名,不使用公共的后缀
  2. src 必传,模板文件所在位置(不包含文件名)【此路径根据调用文件的位置为起始位置】
  3. name srcCustom不填时,必传name。模板文件的前缀,后缀默认 '.tmpl.html' 可在template.js中修改。
  4. selector 必传,调用模板的标签 id class等,如 '#nav'
  5. data 数据
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注