我在 article 中读到我可以通过使用 - var = function(...){...} 定义内联函数来使用内联函数,但是当我编码时:
- var tryit = function tryit(tasks) {alert('will not work')};
if tasks
#adiv #{tryit(tasks)}
我收到此错误消息:
if supervisor tryit is not a function
我扫描了所有哈巴狗文档(当然,那里没有这样的东西!),请告诉我如何采用这种方法,以便我可以进一步处理从客户端服务器发送的变量“任务”。
我的用例是,如果我有来自服务器的 json 数组,请进一步处理它并添加 DOM 元素的树结构。然后最后将其附加到div(id='adiv')。无论如何,我无法弄清楚如何执行此操作,因为当我使用 document.createElement(...) 时,我会收到与上面的alert(..)类似的错误。我按脚本尝试过。但我无法调用我在脚本中声明的方法。在哈巴狗模板中使用 #{myScriptedFunc(...)}。
编辑:
更令我惊讶的是:如果我将其更改为:
- var tryit = function() {console.log('silence!');};
if tasks
#adiv #{tryit()}
不会有错误消息,但输出将在服务器端(在我运行服务器的命令行窗口中),而不是在浏览器中,这意味着该行是在服务器端执行的?但我希望它在客户端运行。如何在客户端进行这样的后处理对我来说仍然是一个迷。
最佳答案
你的变量应该保存函数的“名称”,函数本身应该是匿名的。
var tryit = function (tasks) {
alert('will work')
};
所以 var tryit = function tryit(tasks)
变为 var tryit = function(tasks)
关于javascript - 如果从 "if condition"调用它,为什么我不能在 pug 模板中使用内联alert()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48628012/