如果从 "if condition" 调用它,为什么我不能在 pug 模板中使用内联 alert()?

why I can not use inline alert() in pug template if calling it from "if condition"?

我在 article 中读到,我可以通过使用 - var = function(...){...} 定义它们来使用内联函数,但是当我编码时:

    - var tryit = function tryit(tasks) {alert('will not work')};
    if tasks
          #adiv #{tryit(tasks)}

我收到此错误消息:

if supervisor tryit is not a function

我扫描了所有哈巴狗文档(好吧,那里没有这样的东西,当然!),请告诉我如何使用这种方法,以便我可以进一步处理从服务器发送的变量 'tasks'客户端。
我的用例是,如果我有一个来自服务器的 json 数组,进一步处理它并添加一个 DOM 元素的树结构。然后最后将其附加到 div(id='adiv')。无论如何,我不知道该怎么做,因为当我使用 document.createElement(...) 时,我会遇到与上面的 alert(..) 类似的错误。我试过脚本。但是我不能调用我在脚本中声明的方法。在带有#{myScriptedFunc(...)} 的哈巴狗模板中。
编辑:
更让我吃惊的是:如果我把它改成:

- var tryit = function() {console.log('silence!');};
    if tasks
          #adiv #{tryit()}

不会有错误消息,但输出将在服务器端(在命令行 window 中,我 运行 服务器),而不是在浏览器中,这意味着该行是在服务器端执行?但我希望它 运行 在客户端。在客户端进行这种 post 处理的方法对我来说仍然是一个错误。

你的变量应该包含函数的 'name',函数本身应该是匿名的。

var tryit = function (tasks) {
  alert('will work')
};

所以 var tryit = function tryit(tasks) 变成 var tryit = function(tasks)

Alert 可以工作,它看起来不太好,但它是: if messages !== null each message in messages mixin alertMessage(message) script. debugger; alert(message); +alertMessage(message) else mixin alertMessage() script. debugger; alert('Hey Look i work!'); +alertMessage()

使用 mixin 将允许您调用类似代码块的函数,您可以将纯 javascript 放入其中。

我想你可以做 if 检查,然后把

script.

标签在那之后,但是

mixin

将允许您遍历您在路由中发送的数组或对象

res.render('myPage', { anonymous object });