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

发布于 2022-09-06 04:34:06 字数 3863 浏览 30 评论 0

就是想用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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对你而言 2022-09-13 04:34:06

var mobanstring = $("#moban").html();
你把#漏掉了

https://jsfiddle.net/papersna...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文