简体   繁体   English

无法将数据从玉传递到javascript

[英]Unable to pass data from jade to javascript

I am learning jade and following is my code snippet 我正在学习翡翠,以下是我的代码段

extends layout


block content
  h1= title
  p Token is #{token.access_token}
      script(type='text/javascript')
          var tokenValue = JSON.parse(token);
          sayhi(tokenValue);

Inside my test.js I have 在我的test.js中

function sayhi(token) {
    console.log(token);
}

If I send a text from sayhi - it works perfectly but if i send tokenValue - I get following error: 如果我从sayhi发送文本-效果很好,但是如果我发送tokenValue-我收到以下错误:

unexpected text ;

   at Object.Lexer.fail (/home/shardul/WebstormProjects/trial/node_modules/jade/lib/lexer.js:872:11)
   at Object.Lexer.next (/home/shardul/WebstormProjects/trial/node_modules/jade/lib/lexer.js:931:15)
   at Object.Lexer.lookahead (/home/shardul/WebstormProjects/trial/node_modules/jade/lib/lexer.js:113:46)
   at Parser.lookahead (/home/shardul/WebstormProjects/trial/node_modules/jade/lib/parser.js:102:23)
   at Parser.peek (/home/shardul/WebstormProjects/trial/node_modules/jade/lib/parser.js:79:17)
   at Parser.tag (/home/shardul/WebstormProjects/trial/node_modules/jade/lib/parser.js:751:22)
   at Parser.parseTag (/home/shardul/WebstormProjects/trial/node_modules/jade/lib/parser.js:737:17)
   at Parser.parseExpr (/home/shardul/WebstormProjects/trial/node_modules/jade/lib/parser.js:211:21)
   at Parser.block (/home/shardul/WebstormProjects/trial/node_modules/jade/lib/parser.js:707:25)
   at Parser.tag (/home/shardul/WebstormProjects/trial/node_modules/jade/lib/parser.js:816:24)

A few issues that i see here. 我在这里看到的一些问题。

  1. You need to define the script as a text block, using a period. 您需要使用句点将脚本定义为文本块。
  2. token is currently a variable in Jade that needs to be encoded for JS, not decoded. token当前是Jade中的一个变量,需要为JS编码,而不是解码。
  3. You'll need to interlope token to the text block. 您需要将token插入文本块。

Final code: 最终代码:

block content
  h1= title
  p Token is #{token.access_token}
      script(type='text/javascript').
          var tokenValue = #{JSON.stringify(token)};
          sayhi(tokenValue);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM