EJS 渲染并滚动到部分
EJS render and scroll to section
我想呈现我的索引,但向下滚动到我的表单部分。
我想做这样的事情:
app.post('/rsvp', (req, res) => {
res.render('index/#rsvp', { errors: { email: 'Your email has already registered'}})
}
我的 index.ejs 有一个这样的部分:
<section id="rsvp">
<form name="rsvp" id="newRsvp" method="post" action="/rsvp">
<div class="form-group">
<% if (locals.errors.email) { %>
<p>Enter your email</p>
<% } %>
</form>
</section>
使用 EJS 执行此操作的最佳方法是什么
render
的第一个参数是模板的 文件名。
浏览器正在访问的不是URL。
浏览器已经确定并向您的服务器请求它(这就是 /rsvp
路由首先被命中的原因)。
您的选择是:
- 更改浏览器要发布到的 link,使其首先包含片段 ID
- 使用 P/G/R pattern 从
post
路由重定向到浏览器获取的 URL,其中包含片段 ID。
- 使用client-side JS 在加载足够的页面后滚动页面
EJS 不会帮助你,除非有条件地包括上述最后一个选项中提到的 client-side JS。
我想呈现我的索引,但向下滚动到我的表单部分。
我想做这样的事情:
app.post('/rsvp', (req, res) => {
res.render('index/#rsvp', { errors: { email: 'Your email has already registered'}})
}
我的 index.ejs 有一个这样的部分:
<section id="rsvp">
<form name="rsvp" id="newRsvp" method="post" action="/rsvp">
<div class="form-group">
<% if (locals.errors.email) { %>
<p>Enter your email</p>
<% } %>
</form>
</section>
使用 EJS 执行此操作的最佳方法是什么
render
的第一个参数是模板的 文件名。
浏览器正在访问的不是URL。
浏览器已经确定并向您的服务器请求它(这就是 /rsvp
路由首先被命中的原因)。
您的选择是:
- 更改浏览器要发布到的 link,使其首先包含片段 ID
- 使用 P/G/R pattern 从
post
路由重定向到浏览器获取的 URL,其中包含片段 ID。 - 使用client-side JS 在加载足够的页面后滚动页面
EJS 不会帮助你,除非有条件地包括上述最后一个选项中提到的 client-side JS。