其中 2 个自定义分隔符
ejs 2 custom delimiter
EJS2 只能将字符与尖括号一起使用 open/close:
ejs.delimiter = '$';
ejs.render('<$= users.join(" | "); $>', {users: users});
我想使用 {{ }}
而不是 <% %>
,以前的版本将允许此 esj.open = '{{'
和 esj.close = '}}'
。
有什么帮助吗?
如果不修改 module's source code,这是不可能的。
文档指出支持自定义分隔符:
EJS 已更新并更改了维护者,因此可以在此处找到主要站点:https://ejs.co/
Github 在这里:https://github.com/mde/ejs
与以前版本的 EJS 不同,您现在不能完全使用自定义分隔符 - 您可以使用 'partial' 自定义分隔符 - 第一组括号不是可选的,但后面的字符是可选的。要设置自定义分隔符,您可以执行以下操作:
// app.js
const ejs = require('ejs');
ejs.delimiter = '?';
app.get('/', (req, res) => {
res.render('index', {
myVariable: 'Hey!'
});
});
// index.ejs
<div>
<p>
<?=myVariable ?>
</p>
</div>
// index.html (rendered output)
<div>
<p>
Hey!
</p>
</div>
您可以添加完整的选项对象和其他内容,但如果您想更改默认分隔符,希望这能帮助您入门。
我使用自定义分隔符的解决方案是在模板上进行字符串替换
const template = fs.readFileSync(path.join(__dirname, './template.html'), 'utf8').replace('{{', '<%').replace('}}', '%>')
const render = ejs.compile(template)
这让我可以像这样声明我的模板:
{{ if (someVar) { }}
{{= someVar }}
{{ } }}
EJS2 只能将字符与尖括号一起使用 open/close:
ejs.delimiter = '$';
ejs.render('<$= users.join(" | "); $>', {users: users});
我想使用 {{ }}
而不是 <% %>
,以前的版本将允许此 esj.open = '{{'
和 esj.close = '}}'
。
有什么帮助吗?
如果不修改 module's source code,这是不可能的。
文档指出支持自定义分隔符:
EJS 已更新并更改了维护者,因此可以在此处找到主要站点:https://ejs.co/ Github 在这里:https://github.com/mde/ejs
与以前版本的 EJS 不同,您现在不能完全使用自定义分隔符 - 您可以使用 'partial' 自定义分隔符 - 第一组括号不是可选的,但后面的字符是可选的。要设置自定义分隔符,您可以执行以下操作:
// app.js
const ejs = require('ejs');
ejs.delimiter = '?';
app.get('/', (req, res) => {
res.render('index', {
myVariable: 'Hey!'
});
});
// index.ejs
<div>
<p>
<?=myVariable ?>
</p>
</div>
// index.html (rendered output)
<div>
<p>
Hey!
</p>
</div>
您可以添加完整的选项对象和其他内容,但如果您想更改默认分隔符,希望这能帮助您入门。
我使用自定义分隔符的解决方案是在模板上进行字符串替换
const template = fs.readFileSync(path.join(__dirname, './template.html'), 'utf8').replace('{{', '<%').replace('}}', '%>')
const render = ejs.compile(template)
这让我可以像这样声明我的模板:
{{ if (someVar) { }}
{{= someVar }}
{{ } }}