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

标签 javascript iteration pug inline

我在 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/

相关文章:

javascript - Nightwatchjs获取多个输入的值

javascript - JQuery 查找 HTML 项并替换

JavaScript 执行函数数组,如果全部返回 True,则返回 True

c++ - 递归到迭代保留变量和调用顺序

node.js - express 和 jade,忽略渲染错误

prototype - javascript 库原型(prototype)函数没有一个接一个地执行

javascript - 我在js中使用innerHTML时遇到土耳其语字符问题

python - 如何提高 Python 在大文件上的迭代性能

javascript - 在 jade 页面上使用可变 JSON 对象时的 NodeJS "identifier starts immediately after numeric literal"

javascript - JADE 和 ng 类