摘要:
最近在开发项目时,异步接口需要前端渲染数据,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'))
来源:https://www.cnblogs.com/xiyangbaixue/p/5277186.html