如果从 "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 });
我在 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 });