【JS】JsRender模板插件的使用

新公司项目,同事推荐了我JsRender 模板插件,用了感觉挺好用的,至少比拼接字符串方便的多,而且支持绑定和函数判断,以及一些其他的高级用法,我用到的有,数据绑定,if else 判断,和方法绑定等。废话不多说,开始介绍。(并非jsRender学习,只是个人项目总结)

先看一段代码:

<script type="text/x-jsrender" id="letterSendUserInfoTemplate">
    <img class="header" src="{{:headPhotos}}" onerror="javascript:"http://blog.51cto.com/viewpic.php?refimg=" + this.src=‘‘" />
    <div class="info_warp">

        <div class="info_inner">
            <span class="username">{{:name}}</span>
            <span class="userinfo">{{:title1String}}</span>
            <span class="userinfo">{{:title2String}}</span>
        </div>
        <p class="micro_text">
            {{:microMotto}}
        </p>
    </div>
</script>

没错,以上就是模板了,{{}}里的就是要绑定的Model数据。首页,页面上引用jsrender.js不多说,如果绑定上述模板的的话,方法如下:

 var tabhtml = $("#letterSendUserInfoTemplate").render(data);
                letter.options.leftlettertabcontainer.html(tabhtml);
  var data=[{headPhotos:‘‘,name:‘‘,title1String:‘‘,title2String:‘‘,microMotto:‘‘},
  {headPhotos:‘‘,name:‘‘,title1String:‘‘,title2String:‘‘,microMotto:‘‘}];

其实很简单,如果是ajax请求的话,只要把返回的数据项绑定到相应的html上,然后用模板的render方法得到相应的html,赋值给相应的div或者其他元素,就OK了, 省去了自己拼写html并且难维护的麻烦。

使用功能一: for循环

 {{for #data}}html代码{{/for}}

使用功能二:if else 根据不同的条件判断给元素赋值不同的class

class="{{if placeMent==0}}other {{else}}self{{/if}} {{if isRead}}{{else}}notRead{{/if}} clearfix"

使用功能三:用js方法,将时间转换为固定格式,注意ShortTimeFormatter方法必须放在$.views.helpers里面

$.views.helpers({
    TimeFormatter: function (time) {
        var t = time.split(‘T‘);
        var result = t[0].substr(0, 10) + ‘ ‘ + t[1].substr(0, 5);
        return result;
    },
    ShortTimeFormatter: function (time) {
        var t = time.split(‘T‘);
        var result = t[0].substr(2, 8) + ‘ ‘ + t[1].substr(0, 5);
        return result;
    },
    LastTimeFormatter: function (time) {
        return $.getDateDiff(time);
    }
});
<div class="release_time">
                    {{>~ShortTimeFormatter(addTime)}}
                </div>

好啦,项目中目前就用到这么几个简单的方法,不过jsrender应该会更强大一些,只不过我没有用到,对此感兴趣的可以上网艘一下吧,没错,  JsRender

时间: 2024-10-25 09:16:14

【JS】JsRender模板插件的使用的相关文章

模板插件aTpl.js新增功能

摘要: aTpl.js是一款模板插件,该插件支持ie5+,chrome等浏览器以及移动端浏览器,支持for和if语法,以及表达式.最近对aTpl.js模板插件增加了新的功能,支持字符串模板,同时增加了模板缓存功能. 项目地址:https://github.com/baixuexiyang/aTpl 性能测试:http://baixuexiyang.github.io/aTpl/doc/perform.html 实例: var data = { name: '测试', sex: 1, contac

javascript模板插件amaze.js

摘要: 最近在开发项目时,异步接口需要前端渲染数据,js拼接太低级,必然要用模板插件.之前用过基于jQuery的和juicer等插件,考虑到以后公司项目上的统一,移动端和pc端上的统一,以及可维护性,所以就自己开发了一款模板插件amaze.js. 支持IE5+,chrome等流浏览器,支持for和if语法,以及表达式. 代码:https://github.com/baixuexiyang/amaze 例子: <script src="../src/amaze.js"><

JsRender模板

一.jsrender jsrender 是下一代的 jQuery 模板,专为高性能的纯字符串渲染而优化,无需 DOM 和其他 jQuery 依赖. 在JsRender中,是通过调用方法render()来渲染模板的.换句话说,就是在Html文件中使用java script来输出html模板的内容. 二.下载最新的jsrender.js和jsrender.min.js官方文档下载:http://www.jsviews.com/#download jquery下载地址: http://jquery.c

jsRender模板引擎

jsRender模板引擎 上一篇最后提到了模板,并尝试自己编写一个最简单版本:有些朋友可能用过 jqtmpl,这是一个基于jquery的模板引擎,不过它已经不再更新了,而且据说渲染速度比较慢.这里介绍另外一个模板引擎:jsRender.个人觉得这些东西学习起来还是很简单的,挑一个看看就行,实际要用到了哪个,官网看看demo也就会用了.之所以选择jsRender,因为它具有以下特点: 简单直观 功能强大 可扩展的 快如闪电 当然,谁都会自己给自己的产品下这样定义.不过我用完后,确实发现它:简单直观

JS中模板嵌套学习(代码)

<script src="script/jquery-1.4.2.js"></script>    <script src="script/jsrender.js"></script>    <script id="header" type="text/x-jsrender">        <tr>               <th>序号&

JSRender模板一

JSRender之内置的模板标签 (一)  JsRender模板,被称为"下一代jQuery模板",为高性能的.纯粹基于字符串的呈现做了优化,并且不依赖于DOM或jQuery.在JsRender中,是通过调用方法render()来渲染模板的,换句话说,就是在Html文件中使用java script来输出html模板的内容. 一.什么是JsRender? JsRender是一个简单.直观,强大.易扩展.轻量的最优UI模板. 换句话说,就是在Html文件中使用java script来输出h

js使用模板快速填充数据

1.html <!DOCTYPE html> <html> <head> <title>模板标签</title> </head> <body> <table id="tableData"> <tr class="firstLine"> <th></th> <th>图片</th> <th>图片名称<

手写js面向对象选项卡插件

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>无缝滚动</title>    <style type="text/css">        body,ul{margin: 0;padding: 0;}        li{list-style: none;}  

一步一步实现JS拖拽插件

js拖拽是常见的网页效果,本文将从零开始实现一个简单的js插件. 一.js拖拽插件的原理 常见的拖拽操作是什么样的呢?整过过程大概有下面几个步骤: 1.用鼠标点击被拖拽的元素 2.按住鼠标不放,移动鼠标 3.拖拽元素到一定位置,放开鼠标 这里的过程涉及到三个dom事件:onmousedown,onmousemove,onmouseup.所以拖拽的基本思路就是: 1.用鼠标点击被拖拽的元素触发onmousedown (1)设置当前元素的可拖拽为true,表示可以拖拽 (2)记录当前鼠标的坐标x,y