我想为任何包含
/edit-post
的 URL 包含一个脚本文件。问题是,我的编辑器 URL 始终会带有这样的帖子标题后缀:/edit-post/some-post-title
,因此我的 Pug 条件永远不会计算为 true。
换句话说,我正在寻找在以下两个示例条件下均成立的条件语句:
/edit-post/some-post-title
/edit-post/an-even-better-post-title
我已经可以访问路径 url 变量,并且当完全匹配时我的条件工作正常,因此我尝试将其扩展到后缀子目录。这就是我要开始的:
if path === '/edit-post'
//my script file
是否有办法在 Pug 中包含正则表达式或某种“包含”语句?
我在想类似
"/edit-post.*"
或"edit-post[s/S]"
之类的东西。也绝望了,尝试使用 .indexOf()
,所有比我聪明的人都知道它在 Pug 模板中不起作用!
也许有更好的方法来实现这一目标?搜索了几个小时。尝试了一百个组合。帕格的文档很少。
旁注:我确实找到了我一直用作测试人员的这个整洁的小 Pug/Jade 条件文档。可能有用:http://learnjade.com/tour/conditionals/
其实我推荐你:
1) 重新考虑你的路线
2) 为管理面板布局创建
/layouts/admin
3) 创建
/admin/posts/edit
视图用于编辑目的
但对于你的问题,这里有一个简单的例子:
router.get('/post/:slug/edit', (req, res) => {
Post
.findOne({slug: req.params.slug})
.exec((err, post) => {
res.render('post', {includeEdit: true, post});
});
});
Post
是猫鼬模型并在您的视图文件中:
if includeEdit === true
include partials/edit