Javascript 通过AJAX呈现Jade模板,并尝试传递/访问与HTML分离的数据

Javascript 通过AJAX呈现Jade模板,并尝试传递/访问与HTML分离的数据,javascript,html,node.js,express,pug,Javascript,Html,Node.js,Express,Pug,我通过res.render with Express在ajax调用中呈现Jade模板。问题是我想将一些JSON变量或Javascript对象与HTML一起传递回去 这可能是优雅的方式还是根本不可能?我知道我可以将脚本标记与HTML一起传递,但我不确定如何在“数据”响应中直接访问这些值 示例如下: - var someNumber = 89 h1 Hello World li #{someNumber} 通常在这个模板的res.render()中,在ajax调用中,您会得到 <h1>

我通过res.render with Express在ajax调用中呈现Jade模板。问题是我想将一些JSON变量或Javascript对象与HTML一起传递回去

这可能是优雅的方式还是根本不可能?我知道我可以将脚本标记与HTML一起传递,但我不确定如何在“数据”响应中直接访问这些值

示例如下:

- var someNumber = 89
h1 Hello World
li #{someNumber}
通常在这个模板的res.render()中,在ajax调用中,您会得到

<h1> Hello Wolrd </h1>
<li> 89 </li>
你好,沃尔德
  • 89
  • 全部为HTML格式


    如何访问回调中的一个HTML节点?理想情况下使用jQuery选择器,例如$('h1li')。我需要回拨电话中的号码,但它似乎没有抓住它。我在考虑侦听器或添加延迟,或者我需要将其分配给一个字符串并将其解析出来。

    不完全确定我是否理解这个问题。但是,通过Jade将JSON直接传递到浏览器。在路线逻辑中,您需要以下内容:

        res.render "test",
        title: "Test"
        debugJson: {
          'Read Folder Result' : result, 
          'HTTP' : {
            'Req URL' : req.url,
            'Req Query' : req.query,
            'Req User' : req.user,
            'Req Headers' : req.headers,
            'Req' : req,
            'Res' : res
          }
        }
    
    #debug !{JSON.stringify(debugJson)}
    
    (对不起,这是在CoffeeScript中,而不是在JS中)

    在您的Jade模板中,您需要(在脚本中)包含以下内容:

    这将直接将JSON传递到脚本中。如果要将其直接导入DOM,请执行以下操作:

        res.render "test",
        title: "Test"
        debugJson: {
          'Read Folder Result' : result, 
          'HTTP' : {
            'Req URL' : req.url,
            'Req Query' : req.query,
            'Req User' : req.user,
            'Req Headers' : req.headers,
            'Req' : req,
            'Res' : res
          }
        }
    
    #debug !{JSON.stringify(debugJson)}
    
    这将把它倒进一个div


    但是,如果您只想在Jade模板中处理它,您可以简单地在Jade中使用一个循环。请参阅此了解如何做到这一点。

    不完全确定我是否理解这个问题。但是,通过Jade将JSON直接传递到浏览器。在路线逻辑中,您需要以下内容:

        res.render "test",
        title: "Test"
        debugJson: {
          'Read Folder Result' : result, 
          'HTTP' : {
            'Req URL' : req.url,
            'Req Query' : req.query,
            'Req User' : req.user,
            'Req Headers' : req.headers,
            'Req' : req,
            'Res' : res
          }
        }
    
    #debug !{JSON.stringify(debugJson)}
    
    (对不起,这是在CoffeeScript中,而不是在JS中)

    在您的Jade模板中,您需要(在脚本中)包含以下内容:

    这将直接将JSON传递到脚本中。如果要将其直接导入DOM,请执行以下操作:

        res.render "test",
        title: "Test"
        debugJson: {
          'Read Folder Result' : result, 
          'HTTP' : {
            'Req URL' : req.url,
            'Req Query' : req.query,
            'Req User' : req.user,
            'Req Headers' : req.headers,
            'Req' : req,
            'Res' : res
          }
        }
    
    #debug !{JSON.stringify(debugJson)}
    
    这将把它倒进一个div


    但是,如果您只想在Jade模板中处理它,您可以简单地在Jade中使用一个循环。请看下面的内容了解如何做到这一点。

    我不明白。你能把你正在使用的代码贴出来吗?@MarkLinus更新得更清楚了。我不明白。你能发布你正在使用的代码吗?@MarkLinus更新得更清楚了。好吧,无论哪种方式,我都必须将其作为脚本变量传递。这就是我试图避免的。也许多个请求将是一个更好的解决方案,但我恐怕不是。老实说,将JSON传递到浏览器的最佳方式根本不是这种方式。如果您只需要这一部分,请使用res.json()。好的,无论哪种方式,我都必须将其作为脚本变量传递。这就是我试图避免的。也许多个请求将是一个更好的解决方案,但我恐怕不是。老实说,将JSON传递到浏览器的最佳方式根本不是这种方式。如果您只需要这一部分,只需使用res.json()。