首页 > 解决方案 > res.render 传递本地参数的正确方法

问题描述

我的 navbar.ejs 中有下一个代码:

  <% if (isIndex) { %>
        <li class="active"><a href="/">Todos</a></li>
    <% } else { %>
        <li><a href="/">Todos</a></li>
    <% } %>
    
    <% if (isCreate) { %>
        <li class="active"><a href="/create">Create</a></li>
    <% } else { %>
        <li><a href="/create">Create</a></li>
    <% } %>

在我的路线文件中,我有两条路线'/'和'/create':

router.get('/', (req, res) => { res.render('index', { title: '"To do" list', isIndex: true }) })

router.get('/create', (req, res) => {
const options = {
    title: 'create new "to do"',
    isCreate: true,
}

res.render('create', options)

我有特殊的标志,具体取决于它是哪个页面(索引或创建)并使相应<li>的活动。但是我收到“isCreate is not defined”错误,要么将其作为 obj 文字(路由'/')传递,要么将其作为 var 选项(路由'/create')传递。起作用的是这样传递: res.render('path', { options })在 ejs 中使用<% if (options.isIndex) { %> and <% if (options.isCreate) { %>. 但为什么?

标签: expressejs

解决方案


推荐阅读