关于ejs3.0版本的partial is not defined问题
发布于 12 年前 作者 usherwong 16851 次浏览 最后一次编辑是 8 年前

本人是nodejs菜鸟,我用的是ejs3.0,听说在3.0中已经把partial函数给去掉了,用include取代?那么include怎么应用呢? 原partial写法是这样的:<ul><%- partial(‘listitem’,items) %></ul>

直接替换策划那个include写法不对啊,难道要写成 <ul><%- partial listitem,items %></ul> 注:有人说写成这个形式<% include nav %> <!-- replaces your old <%- partial(‘nav’) %> --> 但是我有两个参数啊,求助。。。

11 回复

include应该是不用传参数的。当前页面的变量,nav 页面也可以用

.安装express-partials。 方法一:运行cmd用npm install express-partials 方法二:在package.json里面的dependencies添加"express-partials": “*”。然后运行cmd并切换 至项目目录运行npm install获得最新版。 2.app.js里面引用express-partials。 步骤一:添加引用var partials = require(‘express-partials’); 步骤二:在app.set(‘view engine’, ‘ejs’);下面添加app.use(partials()); 3.在需要引用模板的地方调用layout:‘模版名称’ 示例 app.get(’/reg’, function (req, res) { res.render(‘reg’, { title: ‘用户注册’, layout: ‘template’ }); });

你好我安装你上面的添加后为什么还需要在views 文件夹下添加一个 layout.ejs 这个模版 layout.ejs 内容是 <ul><%- partial(‘listitem’,item)%></ul>

为什么要加layout.ejs 这个文件啊,谢谢了

使用forEach,并使用include的替换就好了 <ul> <% items.forEach(function(listitem){ %> <% include listitem %> <% }) %> </ul>

搞不懂,可以使用include为什么还要额外去装express-partial

直接使用include

回到顶部