我使用{{#def.header}}代码片段在index.dot中包含了一个header.def文件,并使用以下代码片段呈现了index.dot文件。
var dotjs = require('dot');
var dots = dotjs.process({ path: "./views"});
app.get('/',function(request, response){
response.send(dots.index());
});我还希望做的是只在单独的url上渲染头部。类似于:
app.get('/header',function(request, response){
response.send(dots.header()); // header.def is not compiled to a dot.header function
});发布于 2015-06-09 01:48:32
也许您可以创建另一个.def文件(例如"onlyHead.dot"),并在该文件中包含静态标头,而不包含任何其他内容。然后以与您相同的方式发送onlyHead.dot。
您还可以使用模板引擎执行以下操作:
在主应用中:
/* 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):
app.get('/',function(request, response){
var myData = {
title : 'My title',
someData : 'My Data'}
response.render('index', myData);
});然后,您的index.dot模板可以如下所示:
{{#def.static}}
<h1>{{=it.title}}</h1>
<div>The requested data is: {{=it.someData}} </div>https://stackoverflow.com/questions/30258411
复制相似问题