一个简单的前端渲染小例子出错,underscore.js的错误

就是想用underscore.js写一个小例子,Node去发送json数据,content.html引用underscore和jquery,把json的数据读取到html模版内容里,但是出错了。

错误提示:
clipboard.png

定位到代码:
content.html:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .header{
            width:980px;
            height:100px;
            margin:0 auto;
            background-color: #ccc;
            margin-bottom: 20px;
        }

        .content {
            width:980px;
            margin:0 auto;
        }
        .main {
            float: left;
            width:599px;
            margin-right: 20px;
            border-right:1px solid red;
        }
        .aside {
            float: left;
            width: 360px;
            height: 400px;
            background-color: #ccc;
        }
        h1 {
            text-align: center;
        }
        .grid {
            border-bottom: 1px solid #333;
            box-shadow: 1px 1px 1px #333;
            margin-bottom: 10px;
            border-radius: 10px
            padding: 10px;
            box-sizing: border-box;
        }
    </style>
</head>
<body>
    <div class="header"></div>
    <div class="content">
        <div class="main">
        </div>

        <div class="aside"></div>
    </div>

    <script type="text/template" id = "moban">
        <div class="grid">
            <h3><%= biaoti %></h3>
            <p>发布时间:<%= shijian %> 作者:<%= zuozhe %></p>
            <p><%= neirong %></p>
            <p><a href="">详细</a></p>
        </div>
    </script>

    <script type = "text/javascript" src = "jquery-1.11.3.min.js"></script>
    <script type="text/javascript" src = "underscore.js"></script>

    <script type="text/javascript">
        //得到模版内容
        var mobanstring = $("moban").html();
        var compiled = _.template(mobanstring);
        //发出AJAX请求
        $.get("/news",function (data,status) {
            for(var i = 0; i < data.length; i++) {
                var compiledString = compiled(data[i]);
                $(".main").append($(compiledString));
            }
        });
    </script>
</body>
</html>

Node后台,app.js

var express = require("express");

var app = express();

app.use(express.static("./public"));

var shujuku = [
    {
        "biaoti":"我是1号新闻啊!我很开心啊",
        "shijian":"2017年11月14日09:21:03",
        "zuozhe":"考拉",
        "neirong":"<p>内容啊内容啊内容啊内容啊</p>"
    },
    {
        "biaoti":"我是2号新闻啊!我很开心啊",
        "shijian":"2017年11月14日09:21:03",
        "zuozhe":"Bob",
        "neirong":"内容啊内容啊内容啊内容啊"
    },
    {
        "biaoti":"我是3号新闻啊!我很开心啊",
        "shijian":"2017年11月14日09:21:03",
        "zuozhe":"Jack",
        "neirong":"内容啊内容啊内容啊内容啊"
    },
    {
        "biaoti":"我是4号新闻啊!我很开心啊",
        "shijian":"2017年11月14日09:21:03",
        "zuozhe":"hehe",
        "neirong":"内容啊内容啊内容啊内容啊"
    }
];

app.get("/news",function (req,res) {
    //相当于send的时候发的是json数据
    res.json(shujuku);
});

app.listen(3000);

运行结果:
clipboard.png
正确结果应该显示:

clipboard.png

undersocre.js 中文文档地址:undersocre.js的template

阅读 2.5k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏