javascript - 如何使用 JavaScript 动态更改翡翠变量?
问题描述
例如在我的文件 index.jade 我有:
extends layout
block varScope
-var selected = 'Home';
-var isEmpty = 'false';
body
button(onclick='changeState()') Click
script.
function changeState(){
// change isEmpty variable here to true -- how to ?
}
可以用 javascript 设置我的 pug/jade 变量吗?如果没有,请问我有什么替代方案?
解决方案
不,你在这里要求做的事情是不可能的。Pug 在服务器上运行,JavaScript 在浏览器的客户端上运行。一旦 pug 模板在服务器上呈现出来,这个过程中就不再有 pug 了。
您可以做的是使用 pug 预加载变量名称:
script.
var isEmpty = !{isEmpty};
function changeState(){
// change isEmpty variable here to true -- how to ?
}
或者,如果您有一个更复杂的对象,您可以在将其传递给模板之前对其进行字符串化:
script.
var user = !{user};
function changeUserName(){
user.name = ...
}
推荐阅读
- python - 使用 Pyinstaller 打包 Python 程序 Exe 后未运行
- python - 一行if语句的条件表达式
- sql - PRESTO MAP_FROM_ENTRIES 和 CROSS JOIN UNNEST
- sql - 如何根据同一表中先前列中的值设置标志?(甲骨文)
- c# - 阻止用户回复消息
- angular - mat select 在移动网络上很粘
- azure-pipelines - Azure 管道,最后阶段被跳过,我不明白为什么!是否有审批限制或时间限制?
- puppeteer - 从 puppeteer 中识别相等的字段
- javascript - 以不同的间隔显示图像
- c++ - 添加新模块实例时 V8PP / V8 崩溃