多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
``` <!DOCTYPE html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0"> <title>4使用underscore.js</title> <!--weui.css仅为快速的做出页面,可删除--> <link rel="stylesheet" href="http://me.52fhy.com/demo/jstemp/static/weui.css"/> <script src="static/zepto.min.js"></script> <!--引入underscore.js--> <script src="static/underscore-min.js"></script> </head> <body> <div class="weui_panel weui_panel_access"> <div class="weui_panel_hd">文章列表</div> <div class="weui_panel_bd js-blog-list"> </div> </div> <!--模板--> <textarea class="js-tmp" style="display:none;"> <div class="weui_media_box weui_media_text"> <a href="<%= url %>" class="" target="_blank"> <h4 class="weui_media_title"><%= title %></h4> </a> <p class="weui_media_desc"><%= desc %></p> </div> </textarea> <!--/模板--> <script type="text/javascript"> /* Underscore.js(1.8.3) 中文文档 http://www.css88.com/doc/underscore/ template_.template(templateString, [settings]) 将 JavaScript 模板编译为可以用于页面呈现的函数, 对于通过JSON数据源生成复杂的HTML并呈现出来的操作非常有用。 模板函数可以使用 <%= … %>插入变量, 也可以用<% … %>执行任意的 JavaScript 代码。 如果您希望插入一个值, 并让其进行HTML转义,请使用<%- … %>。 当你要给模板函数赋值的时候,可以传递一个含有与模板对应属性的data对象 。 如果您要写一个一次性的, 您可以传对象 data 作为第二个参数给模板 template 来直接呈现, 这样页面会立即呈现而不是返回一个模板函数。 */ $(function(){ $.ajax({ url: 'static/blog.json', type: 'get', dataType: 'json', success: function (response) { var htmlList = ''; var data = response.list; var htmlTemp = $("textarea.js-tmp").val(); $.each(data, function(i,el) { //htmlList += htmlTemp.temp(el); //htmlList += laytpl(htmlTemp).render(el); /*可以这样:*/ //var compiled = _.template(htmlTemp); //htmlList += compiled(el); /*或者*/ htmlList += _.template(htmlTemp)(el); }); $('.js-blog-list').empty().append(htmlList); }, error: function (jqXHR, textStatus, errorThrown) { if (textStatus == 'timeout') { alert('请求超时'); return false; } console.log(jqXHR.responseText); }, }); }); </script> </body> ```