jQuery.loadTemplate客户端模板

jQuery.Template虽然用起来没有Mustache简洁和方便,还是学习了解一下,做个笔记。

模板可以定义在页面script标签,如下

<script type="text/html" id="template">
    <div data-content="author"></div>
    <div data-content="date"></div>
    <img data-src="authorPicture" data-alt="author"/>
    <div data-content="post"></div>
</script>

也可以定义到独立的html文件中,好处是可以使用浏览器缓存,例如:

<div style="margin:50;border:solid 1px red">

    <div data-content-text="author"></div>
    <div data-content="date"></div>
    <img data-src="authorPicture" data-alt="author" />
    <div data-content="post"></div>
</div>

<hr />

在客户端调用,如果数组数据,模板自动循环重复输出

 //$("#template-container").loadTemplate($("#template"),
        // {
        //     author: ‘Joe Bloggs‘,
        //     date: ‘25th May 2013‘,
        //     authorPicture: ‘https://www.baidu.com/img/bd_logo1.png‘,
        //     post: ‘This is the contents of my post‘
        // });

        $("#template-container").loadTemplate("Templates/template.html",
    [{
        author: ‘Joe Bloggs‘,
        date: ‘25th May 2013‘,
        authorPicture: ‘https://www.baidu.com/img/bd_logo1.png‘,
        post: ‘This is the contents of my post‘
    },
     {
         author: ‘Wilson就是看到看看‘,
         date: ‘25th May 2013‘,
         authorPicture: ‘https://www.baidu.com/img/bd_logo1.png‘,
         post: ‘This is the contents of my post‘
     }
    ]);

使用jquery.template 输出table

html:

<table border="1">
        <thead>
            <tr>
                <th>Id</th>
                <th>Name</th>
            </tr>
        </thead>
        <tbody id="tbody">
        </tbody>
    </table>

template:

<tr>
    <td data-content="id"></td>
    <td data-content="name"></td>
</tr>

javascript:

 var data = [];

        for (var i = 0; i < 10; i++) {
            data.push({ "id": i, "name": "user_name_" + i.toString() });
        }
        $("#tbody").loadTemplate("Templates/tbList.html", data);

参考:https://github.com/codepb/jquery-template

数据绑定属性

There are a number of different bindings and ways to bind the data. The following attributes are available:

"data-innerHTML" (>= 1.4.5) - binds the value supplied to the content (innerHTML) of the element (uses $(elem).html(value))
"data-content" - alias for the newer "data-innerHTML"
"data-content-text" - binds the value supplied to the content of the element as text (uses $(elem).text(value))
"data-content-append" - appends the value to the end of the element (uses $(elem).append(value))
"data-content-prepend" - prepends the value to the beginning of the element (uses $(elem).prepend(value))
"data-id" - sets the id of the element to the value provided (uses $(elem).attr("id", value));
"data-href" - sets the href value of the element to the value provided (uses $(elem).attr("href", value));
"data-alt" - sets the alt value of the element to the value provided (uses $(elem).attr("alt", value));
"data-value" - sets the value attribute of the element to the value provided (uses $(elem).val(value))
"data-class" - sets the class attribute of the element to the value provided (uses $(elem).class(value))
"data-link" - sets the innerHtml of the element to be a link to the value provided (wraps the content in an <a> tag).
"data-link-wrap" - wraps the element in a link to the value provided. Same as "data-link", but the <a> tag wraps the element as well as the content.
"data-options" - adds options to a select box. The value for this should reference an array of strings, each option will be output as a separate option. The value will be the same as the displayed text for each option. For a more powerful version of this look at the data-template-bind option.

自定义格式化方法

$.addTemplateFormatter({
    UpperCaseFormatter : function(value, template) {
            return value.toUpperCase();
        },
    LowerCaseFormatter : function(value, template) {
            return value.toLowerCase();
        },
    SameCaseFormatter : function(value, template) {
            if(template == "upper") {
                return value.toUpperCase();
            } else {
                return value.toLowerCase();
            }
        }
});

模板

<tr>
    <td data-content="id"></td>
    <td data-content="name"  data-format="LowerCaseFormatter"></td>
</tr>
时间: 2024-10-24 22:55:52

jQuery.loadTemplate客户端模板的相关文章

MVC下的客户端模板技术

1.引言 在Web编程中,我们有时经常需要使用Ajax来访问服务端的接口,然后使用这些返回的数据(一般格式都是JSON)来展示客户端的相关信息.例如:在一个商品列表,我们点击某一样的商品,查看该商品的信息信息.这时通过指定的ID来获取商品详细信息后,我们很多时候都是讲HTML和JavaScript结合起来.通过构造HTML标签和JS的填充来展示相关的界面.这样大量的标签拼接,一来不容易维护,二来也导致在编码过程中容易出现错误.今天我给大家做一下客户端模板技术的简单介绍.希望可以通过这个技术在一定

jquery jtemplates.js模板渲染引擎的详细用法第一篇

jquery jtemplates.js模板渲染引擎的详细用法第一篇 Author:ching Date:2016-06-29 jTemplates是一个基于JQuery的模板引擎插件,功能强大,有了他你就再不用为使用JS绑定数据时发愁了.后端语言使用php,asp.net,jsp等都不是问题,使用模板渲染可以很大程度上提高程序性能,使用异步获取数据,不用整个页面都回发,好处当然不仅仅是这些. 下载jtemplates,官网的文档写得非常的详细 打开官网:http://jtemplates.tp

jquery jtemplates.js模板渲染引擎的详细用法第二篇

jquery jtemplates.js模板渲染引擎的详细用法第二篇 关于jtemplates.js的用法在第一篇中已经讲过了,这里就直接上代码,不同之处是绑定模板的方式,这里讲模板的数据专门写一个template.html的文件来展示 <span style="font-family:Microsoft YaHei;font-size:14px;"><!doctype html> <html lang="zh-CN"> <

jquery jtemplates.js模板渲染引擎的详细用法第三篇

jquery jtemplates.js模板渲染引擎的详细用法第三篇 <span style="font-family:Microsoft YaHei;font-size:14px;"><!doctype html> <html lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; chars

jquery.tmpl.js 模板引擎用法

1.0 引入: <script src="/js/jquery.tmpl.min.js"></script> 2.0 模板: <script type="text/x-jquery-tmpl" id="tmpl"> <li> <h5><a href="/news/Detail/${NewsId}">${Title}</a></h5>

(1)无废话JQuery之通用模板

通用模板: <head> <script src="JS/jquery-1.9.1.min.js" type="text/javascript"></script>//这里的src值可以是CDN路径如谷歌,新浪的CDN <script type="text/javascript"> //文档就绪函数 $(document).ready(function(){ //这里面就是要写的jquery代码 }

jquery判断客户端的类型

针对不同客户端下载链接的页面响应样式不一样,更人性点而已 //匹配客户端类型 var isAndroid = navigator.userAgent.toLowerCase().match(/android/i) == "android"; var isIphone = navigator.userAgent.toLowerCase().match(/iphone os/i) == "iphone os"; var isIpad = navigator.userAg

jquery 插件封装模板

//插件编写模板 ;(function ($) { $.fn.plugIn = function ( opt ) { var def = { //这里填写自定义的参数例如: event : 'click' } opt = $.extend( def , opt ); this.each(function(){ var that = $(this); //that 指的是 .box //测试执行 that.on( opt.event , function(){ alert( opt.event )

JQuery Rest客户端库

JQuery Rest https://github.com/jpillora/jquery.rest/ Summary A jQuery plugin for easy consumption of RESTful APIs Downloads Development Version Production Version File Size Report Original: 10314 bytes. Minified: 5920 bytes. Gzipped: 1376 bytes. Feat