gpt4 book ai didi

Jade 模板内的javascript函数执行

转载 作者:IT老高 更新时间:2023-10-28 23:01:00 25 4
gpt4 key购买 nike

我是 nodejs 的新手,正在尝试为 html 内容 myfile.jade 创建一个 Jade 文件:以下是文件内容:

extends layout
block content
script
function capitalize(s) {
console.log("Testing js exec");
return s.charAt(0).toUpperCase() + s.slice(1);
};
table
- each item in list
tr
td
a(href="/collection/#{item.name}") #{capitalize(itemName)}

但是,运行时会抛出以下错误:

Error: mweb/views/collections.jade:8
6| script
7| function capitalize(s) {
> 8| console.log("Testing js exec");
9| return s.charAt(0).toUpperCase() + s.slice(1);
10| };

意外的文字;

如果我删除 console.log,它会抛出错误:

TypeError: mweb/views/collections.jade:18
> 18| a(href="/collection/#{item.name}") #{capitalize(itemName)}

据我所知,在jade编译期间正在调用capitalize,并且该功能不可用,因为脚本标签也被编译到html中。对我来说评估此电话的最佳方式是什么a) 服务器端或b) 客户端?

谢谢

最佳答案

你需要在jade范围内定义函数,而不是在你生成的JS中:

block content
- function capitalize(s) { return s.charAt(0).toUpperCase() + s.slice(1); };
table
- var list = ['one', 'two']
- var itemName = 'test test'
- each item in list
tr
td
a(href="/collection") #{capitalize(itemName)}

但最好将它放在模板之外并将引用传递给辅助对象

关于 Jade 模板内的javascript函数执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20940860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com