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 patternpost 路由重定向到浏览器获取的 URL,其中包含片段 ID。
  • 使用client-side JS 在加载足够的页面后滚动页面

EJS 不会帮助你,除非有条件地包括上述最后一个选项中提到的 client-side JS。