好的,我有一个主要是静态的主页,但我想有导航,页脚等部分视图。我使用的是ejs,它看起来像这样:
我的控制器: home.js
// Dependencies
var express = require('express');
module.exports = {
get: function(req, res) {
app.set('view engine', 'ejs');
var model = {
layout:'home',
};
res.render('home');
}
};我的视图目录中有导航、主页和页脚所有.ejs
则去除文本的实际html文件将如下所示。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" >
<title>Tom Jones</title>
<!-- CSS -->
<link rel="stylesheet" href="/css/home.css" type="text/css" media="screen" >
</head>
<body>
<%- partial('nav') %>
<!--content part -->
<div id="showcontainer">
<section>
</section>
</div>
<div id="maincontainer">
<section>
</section>
</div>
</body>
</html>每当我测试它的时候,我遇到错误partial的问题是没有定义的。我尝试要求ejs,但没有成功。
发布于 2012-08-07 04:42:47
正如@Pickels所说,Partial在3.x中被删除了。然而,最新版本的EJS提供了一种包含"partials“的机制,称为"include":
https://github.com/visionmedia/ejs#includes
用户包含是与包含语句的模板相关的,例如,如果你有“./
/users.ejs”和"./views/user/show.ejs“,你可以使用<% include user/show %>。包含的文件按字面意思包含在模板中,编译后不执行IO,因此本地变量可用于这些包含的模板。
下面的代码将作为旧的partial()函数的替代品。您将需要在其他地方进行调整以完全支持Express 3.x,但在大多数情况下,这似乎工作得很好(实际上更好-更少的代码和更高的性能)。
<% include nav.ejs %> <!-- replaces your old <%- partial('nav') %> -->发布于 2012-07-06 04:05:43
在3.x中删除了Partial。现在是模板引擎提供部分参数的时候了。
https://stackoverflow.com/questions/11351691
复制相似问题