Node.js项目中.jade模板文件无法运行JavaScript代码如何解决
Jade模板内嵌JS运行异常修复方案
- 缩进逻辑错误:
if typeof users != 'undefined'下的用户列表相关标签没有缩进,Jade通过缩进判断层级,导致判断逻辑失效,users未定义时会直接抛出变量不存在的错误 - 引号转义错误:注销链接的
href="/exit"错误使用了HTML转义实体,Jade属性中直接使用双引号包裹路径即可 - 后端数据注入错误:script块中直接写
JSON.stringify(data)无法读取Jade上下文的后端变量,需要使用!{}语法进行非转义插值,才能将服务端变量正确注入到客户端JS作用域
修正后的完整代码如下,已同步将界面文本汉化:
extends layout block content if authorised p 欢迎 #{fname} | a(href="/exit") 退出登录 if typeof users != 'undefined' p 用户列表 ul each user in users li= user.user_fname else p 还没有账号? a(href='/register') 立即注册 p 已有账号? a(href='/login') 立即登录 script. // 注入后端传递的data数据到客户端JS const pageData = !{JSON.stringify(data)} alert('测试提示')
内容的提问来源于stack exchange,提问作者user_1234
相关产品推荐
相关产品推荐

