模板引擎

最近写的代码里面都涉及到了模板引擎,前端的和后台的,所以打算写一篇博客总结一下:

后台的模板引擎与前端的交互

前端代码:

<%for(var i = 0;i<result.length;i++){%>
   <div class="grid">
      <p class="title"><%=result[i].name%></p>
   </div>
<%}%>

这里的result需要后台来呈递

//nodejs
app.get("/allstudent",function(req,res){
  res.render("allstudent",{
    "result":result
  })  
})

这里的result的值可以是我们从数据库中查询值存放在一个数组或其他的值

当我们在后台获取到这个result的值已经完成了这个获取数值的服务,但是我们要将这些值可视化给用户,直接给用户返回一个json值,用户体验太差,所以我们要借用模板引擎

但是如果我们不用模板引擎呈递也可以直接输出json,前台用ajax
或者用Angular调用

Ajax呈递页面
前端代码:

这里我们要引用template.js前端模板引擎,简要快速的简绍一下:

默认的开始标签和结束标签:
sTag: '<%'
eTag: '%>'

这里如果你同时使用了前端的模板引擎后后台的模板引擎很有可能就会冲突,之前我就遇到过类似的问题,解决方法我记录了一下,希望能帮到遇到同一种问题的朋友前后端模板引擎冲突

快速上手:编写模板

使用一个type=”text/html”的script标签存放模板,或者放到字符串中:

<script id="tpl" type="text/html">
  <ul>
    <%for(var i = 0; i < list.length; i++) {%>
    <li><%:=list[i].name%></li>
    <%}%>
  </ul>
</script>
渲染模板:
var tpl = document.getElementById('tpl').innerHTML;
template(tpl, {list: [{name: "yan"},{name: "haijing"}]});

这里的第二个参数可以替换成ajax从后台获取到的数值

下面具体说一下前端代码:

<script type="text/template" id="temp">
  <div class="grid">
    <p class="title"><%=name%></p>
    <p class="xuehao"><%=xuehao%></p>
    <p class="sex"><%=sex%></p>
  </div>
</script>
//jQuery片段

//通过id获取模板
var templateString = $("#temple").html();

//ajax请求
$.get("/allstudent",function(result){
  for(var i = 0;i<result.length;i++){
    //组装模板
    var compiled = _.compiled(templateString{
       "name":result.result[i].name;
       "sex":result.result[i].sex;
       "xuehao":result.result[i].xuehao;
    })
    $(".containter").append($(compiled));
  }
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值