将服务端的一个对象输出给客户端js,客户端接收到的字符串里双引号被转义成“ "”了
将服务端的一个对象输出给客户端js,客户端接收到的字符串里双引号被转义成“ "”了,导致将json字符串转换成json对象的时候报错。
// 后台:
res.render("index", {
title: "首页",
user: {
name: "tom",
age: 10
}
});
// jade模板:
script(type="text/javascript").
var UserJson = "#{JSON.stringify(user)}";
// 客户端:
var UserJson = "{"name":"tom","age":10}";
var User = eval("(" + UserJson + ")"); //这里明显会报错
现在的办法是在客户端用正则表达式将“ “”替换成”,然后再eval。 这里还有别的更好的办法么?谢谢!
2 回复
这种问题其实搜索官方教程肯定会有解释的。
https://github.com/jadejs/jade/blob/master/Readme_zh-cn.md#标签文本
!{JSON.stringify(user)}
模板引擎一般都有关闭转码的方法的 自豪地采用 CNodeJS ionic