Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JavaScript在ExpressJS中设置视图变量_Javascript_Node.js_Express_Ejs - Fatal编程技术网

从JavaScript在ExpressJS中设置视图变量

从JavaScript在ExpressJS中设置视图变量,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,假设我将一个变量myvar从路由器传递到视图- app.get('/test', function(req, res) { res.render('testPage', { myVar: true }); } 现在我可以在脚本标记内的视图中使用此变量,如下所示- <script> var myVar = <%- JSON.stringify(myVar) %>; console.log(myVar); // prints 'tru

假设我将一个变量
myvar
从路由器传递到视图-

app.get('/test', function(req, res) {
    res.render('testPage', {
        myVar: true
    });
}
现在我可以在脚本标记内的视图中使用此变量,如下所示-

<script>
  var myVar = <%- JSON.stringify(myVar) %>;
  console.log(myVar); // prints 'true'
</script>

var myVar=;
console.log(myVar);//打印“真实”
我想做的是将视图变量myVar重置为false,但这不会发生

<script>
  var myVarJS = <%- JSON.stringify(myVar) %>;
  console.log(myVarJS); // prints 'true'
  <%- myVar = false %>;
  myVarJS = <%- JSON.stringify(myVar) %>;
  console.log(myVarJS); // still prints 'true'
</script>

var myVarJS=;
console.log(myVarJS);//打印“真实”
;
myVarJS=;
console.log(myVarJS);//仍然打印“真实”
这种情况下,可以使用值从路由器传递视图变量。现在,我想从客户端javascript更改该变量的值


我正在使用的视图模板引擎是EJS

改变

情况如何?不能基于myVar创建新变量吗?你能告诉我们这个用例吗?@DeendayalGarg我已经编辑了我问题中的最后一个代码片段。@DeendayalGarg场景是你可以用一个值从路由器传递视图变量。现在我想从我的客户端javascript更改该变量的值。还有问题吗?@rnjai你不想更改它的值在客户端javascript中,您试图在解析模板时更改该值。问题仍然存在。为什么?@trex005解释起来有点太复杂了。我想做的是——“场景是你可以用一个值从路由器传递视图变量。现在我想从客户端javascript更改该变量的值。”