首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ejs 'partial is not defined‘

ejs 'partial is not defined‘
EN

Stack Overflow用户
提问于 2012-07-06 03:59:53
回答 2查看 32.7K关注 0票数 29

好的,我有一个主要是静态的主页,但我想有导航,页脚等部分视图。我使用的是ejs,它看起来像这样:

我的控制器: home.js

代码语言:javascript
运行
复制
// 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文件将如下所示。

代码语言:javascript
运行
复制
<!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,但没有成功。

EN

回答 2

Stack Overflow用户

发布于 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,但在大多数情况下,这似乎工作得很好(实际上更好-更少的代码和更高的性能)。

代码语言:javascript
运行
复制
<% include nav.ejs %> <!-- replaces your old <%- partial('nav') %> -->
票数 60
EN

Stack Overflow用户

发布于 2012-07-06 04:05:43

在3.x中删除了Partial。现在是模板引擎提供部分参数的时候了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11351691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档