【发布时间】:2021-12-30 13:32:57
【问题描述】:
我有一个带有按钮的哈巴狗模板test.pug。单击时,我希望按钮调用一个函数,该函数使用从渲染端点传递给模板的参数。这是模板:
doctype html
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
script(type="text/javascript").
window.addEventListener('DOMContentLoaded', function(){
document.getElementById('play-button').addEventListener('click', async () => {
console.log(testvar);
console.log('ready');
});
}, false);
body
button(type = 'button' id = 'play-button') Click to play
这里是渲染 pug 模板的端点:
const express = require('express');
const router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('test',{
title:'Player',
testvar:'testvar'
});
});
module.exports = router;
但是当我加载页面并点击按钮时,我得到了这个错误:
Uncaught (in promise) ReferenceError: testvar is not defined
at HTMLButtonElement.<anonymous>
如果我注释掉console.log(testvar),代码可以正常工作,所以我知道onclick 事件处理程序已成功添加。所以显然事件处理程序是在参数传递给模板之前添加的。
如何使 onclick 事件可以访问参数?
【问题讨论】:
标签: javascript node.js pug