首页 > 技术文章 > javascript模板插件amaze.js

xiyangbaixue 原文

摘要:

  最近在开发项目时,异步接口需要前端渲染数据,js拼接太低级,必然要用模板插件。之前用过基于jQuery的和juicer等插件,考虑到以后公司项目上的统一,移动端和pc端上的统一,以及可维护性,所以就自己开发了一款模板插件amaze.js。

支持IE5+,chrome等流浏览器,支持for和if语法,以及表达式。

代码:https://github.com/baixuexiyang/amaze

例子:

<script src="../src/amaze.js"></script>           
<div id="demo"></div>           
<script id="test" type="text/amaze">           
    <div>负责人:{{ amaze.name }}</div>           
    <div>性别:{{ amaze.sex===1 ? '男': '女' }}</div>           
    <div>表达式:{{ 12/4 }}</div>           
    <ul>           
    {{@ for(var i = 0, _l = amaze.contact.length; i < _l; i++){ }}           
        {{@ if(amaze.contact[i].name === '张三') { }}           
            <li>           
                <span>姓名:{{ amaze.contact[i].name + '条件输出' }}</span>           
                <span>性别:{{ amaze.contact[i].sex===1 ? '男': '女' }}</span>           
            </li>           
        {{@ } else { }}           
            <li>           
                <span>姓名:{{ amaze.contact[i].name }}</span>           
                <span>城市:{{ amaze.contact[i].sex===1 ? '男': '女' }}</span>           
            </li>           
        {{@ } }}           
    {{@ } }}           
    </ul>           
</script>           
<script>           
    var data = {           
        name: '测试',           
        sex: 1,           
        contact: [{name: '张三', sex: 1},           
            {name: '李四', sex: 2}]           
    };           
    var temp = document.getElementById('test');           
    amaze.template(temp).render(data, function(html){           
        document.getElementById('demo').innerHTML = html;           
    });           
</script>

注意:

1、模板的type必须是'text/amaze'

2、模板可以使用jQuery获取,比如:amaze.template($('#temp'))

推荐阅读