首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dot.js中独立渲染def文件

在dot.js中独立渲染def文件
EN

Stack Overflow用户
提问于 2015-05-15 19:30:21
回答 1查看 331关注 0票数 0

我使用{{#def.header}}代码片段在index.dot中包含了一个header.def文件,并使用以下代码片段呈现了index.dot文件。

代码语言:javascript
复制
var dotjs = require('dot');
var dots = dotjs.process({ path: "./views"});
app.get('/',function(request, response){
    response.send(dots.index());
});

我还希望做的是只在单独的url上渲染头部。类似于:

代码语言:javascript
复制
app.get('/header',function(request, response){
    response.send(dots.header()); // header.def is not compiled to a dot.header function
});
EN

回答 1

Stack Overflow用户

发布于 2015-06-09 01:48:32

也许您可以创建另一个.def文件(例如"onlyHead.dot"),并在该文件中包含静态标头,而不包含任何其他内容。然后以与您相同的方式发送onlyHead.dot。

您还可以使用模板引擎执行以下操作:

在主应用中:

代码语言:javascript
复制
/* Template = doT*/
var dot = require("dot").process({ 
  path: (__dirname + "/views")
});

// view engine setup using .dot files
app.engine('dot', function(template, options, cb){
    return cb(null, dot[path.parse(template).name](options));
});

然后在您的视图中,您可以像这样呈现它(使用router.get或使用app.get):

代码语言:javascript
复制
app.get('/',function(request, response){
    var myData = {
       title : 'My title',
       someData : 'My Data'}
    response.render('index', myData);
});

然后,您的index.dot模板可以如下所示:

代码语言:javascript
复制
{{#def.static}}
<h1>{{=it.title}}</h1>
<div>The requested data is: {{=it.someData}} </div>

See my answer here

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

https://stackoverflow.com/questions/30258411

复制
相关文章

相似问题

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