【问题标题】:JQuery & jade read render data from NodejsJQuery & Jade 从 Nodejs 读取渲染数据
【发布时间】:2017-09-15 13:30:27
【问题描述】:

我使用 Jade 框架作为前端,Nodejs 和 express 作为后端

所以当我使用数据渲染视图时,我无法使用 JQuery 访问这些数据

在我的 Nodejs 服务下方,它使用简单数据 = x 呈现视图

router.get('/test',function (req,res,next) {


    res.render('test',{data : 'x'});

});

所以测试页面将毫无问题地显示,我想做的是使用 Jquery 方法读取呈现的数据

                footer
                .pull-right
                    | Gentelella - Bootstrap Admin Template by
                    a(href='https://colorlib.com') Colorlib
                .clearfix
            // /footer content




    // jQuery
    script(src='/vendors/jquery/dist/jquery.min.js')
        alert(data) // no alert or action happen

但是错误说(数据的未知变量)

而且,我可以从玉本身中读取它

有什么建议吗?

谢谢你

【问题讨论】:

    标签: javascript jquery node.js express pug


    【解决方案1】:

    试试下面的

    |<script>
    !='alert("'+data+'")'
    |</script>
    

    您在 Jade 框架中编写的 JavaScript 将无法看到您的服务器端 node.js 变量,因为此客户端 JavaScript 在浏览器内加载和执行,因此您必须以某种方式从服务器端传递变量到客户端,然后使用客户端 JavaScript 获取这些变量。

    如果您要传递一些字符串,则使用以前的方式会更容易。

    |&lt;script&gt; -> 打开 JavaScript 标签。

    !='alert("'+data+'")' -> 普通的jade字符串,将在我们的JavaScript标签中,这意味着它应该在被jade处理后给我们JavaScript代码,这将使我们的最终文本alert("x"),因为数据将被它的值替换。

    |&lt;/script&gt; -> 关闭 JavaScript 标签

    但如果你想传递对象,有一种方法可以这样做:

    • 使用 AJAX 请求。
    • 在服务器端使用JSON.stringify(data) 将您的对象写入隐藏的div,在客户端使用var data = JSON.parse(jQuery('div').text())

    【讨论】:

    • 不幸的是没有读取数据并且低于错误配置文件:2未捕获的ReferenceError:数据未在配置文件中定义:2
    • 修改了我的答案,现在试试
    • 哇哦,它现在工作了!!但问题是你试图添加我自己的代码但不能!我试图复制你的代码也不能| 那么这里的秘密是什么??
    • 在我的回答中添加了一些解释
    猜你喜欢
    • 2017-10-20
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    相关资源
    最近更新 更多