我想从NodeJS路由发送到视图的变量中捕获值。 我知道在HTML(Jade)上获取此值的方法是:
#{name_var}
但是我希望在JS(JQuery)中获得这个值,并且我能想到的唯一方法是DOM(例如:创建一个具有此值的div,它被隐藏,之后,通过getElementById获取值)。
但我认为我发送给视图的这些数据很精细,可能会有很大的安全问题......
你怎么看?还有其他'替代'吗?谢谢。答案 0 :(得分:2)
我认为你不想通过艰难的方式将值首先放到dom元素中,然后再获取它来处理。
您可以直接将值分配给js变量,就像在html标记中一样。
像
script(type='text/javascript').
var somevar = "#{serversideValue}";
因此,当html从jade模板渲染出来时,它将呈现为
script(type='text/javascript').
var somevar = "passedValue";
同样根据路由器传递的值,您可以选择是否使用html编码,同时将值分配给js变量,如#{serversideValue}
或!{serversideValue}
。
此外,如果您通过路由器变量传递完整的json对象,那么您不能像我们上面看到的那样直接分配它。一种方法是从路由器发送它时JSON.stringify()
值,并在客户端JS中使用JSON.parse()
来获取原始对象。
此外,您可能需要查看this stackoverflow question以了解我们现在讨论的方案。