Tag: hogan.js

要求在胡须模板上的节点和浏览器一样

这个问题使用霍根作为例子,但适用于任何模板。 我试图做一些同构(在客户端和服务器上工作)。 在客户端,如果我需要在胡须文件中: var tpl = require('./something.ms'); 然后,browserify +转换检测到这是一个扩展名的胡子文件, tpl是一个对象,其中一个函数是.render 。 我想要完全一样的结果,如果我是用NodeJS运行上述行。 默认情况下,节点只是期望这个文件是一个JavaScript文件,所以结果看起来像这样和错误: (function (exports, require, module, __filename, __dirname) { <h1>some html</h1> …

如何在hogan-express模板引擎中传递数组

如何使用hogan-express将下面的数组传递给HTML页面? 我正在尝试,但似乎并没有工作。 我的代码: apiRouter.get('/myPosts', function(req, res, next){ userModel.findOne({'profileID':req.session.facebookProfileId}, function(err, userPosts) { if(userPosts) { res.render('myPosts', {title:siteName + ': My Posts', posts:userPosts.posts}); } else { console.log('You do not have any posts'); } }) }) 顺便说一下, userPosts.posts如下所示: ["123","124","125"] myPosts.html页面如下: <!doctype html> <head> <meta charset="UTF-8"> <title>{{title}}</title> </head> <body> <p><a href="/posts?id={{posts[0].value}}">Post 1</a></p> <p><a href="/posts?id={{posts[1].value}}">Post 2</a></p> </body> </html> 顺便说一下,{{title}}位正在通过。

为什么我在Mustache中获取模板文件名而不是模板内容

我经历了胡须教程 这个问题与embedded胡须模板到另一个模板有一点相关 除了偏分之外,我还有其他所有的工作 我试图做 base.mustache: {{testVar}} <h2>Names</h2> {{#names}} {{> user}} {{/names}} user.mustache: <strong>{{name}}</strong> 但不是呈现用户模板或它的内容,即名称的价值,它呈现Names c:\blahFolder\user.mustache 我使用hogan-template-compiler来预编译我的模板。 你能弄清楚为什么从上面的信息发生,或者你需要更多的信息? 我假设,我的编译器代码是好的,因为我得到正确呈现testVar值。 如果你真的需要看,这是我的hoganCompiler.js var partialsDir = __dirname + '/views/partials' , jsDir = __dirname + '/public/js/compiled'; var hogan = require('hogan.js') , path = require('path') , join = path.join , fs = require('fs') , onModify , relations = {} , watch; […]

如何将预编译的hogan.js模板封装到AMD模块中?

我试图将预编译我的胡须模板join到我的构build过程中。 我使用AMD代码组织,所以我想将我编译的function包装到模块中。 我正在尝试执行以下操作: var fs = require('fs'); fs.readFile('template.html', 'utf-8', function(err, data){ function wrap(fnString){ var pre = 'define(function(){return '; var post = '});'; return pre + fnString + post; } var hogan = require('hogan.js'); var compiledFn = hogan.compile(data, {asString: true}); fs.writeFile('template.js', wrap(compiledFn), function(){console.log('written template module')}); }); 当我尝试在应用程序中使用导出的函数时,我得到一个错误: Uncaught TypeError: Object [object global] has no method 'b' […]

Node.js,express.js&hogan.js:部分在第二次刷新后无法正确加载

我有一个快速的3应用程序运行良好,但有什么问题,当我第二次刷新网站。 var x = {footer:"footer", header:"header"} exports.index = function(req, res){ res.render("index.html", {jow: "ieps", partials:x}) } 当我第一次去我的网站时,一切都很好,所有的部分渲染很好。 但是,当刷新我有这个错误: Error: ENOENT, open '/Users/kevinvanhove/Documents/work/projects/basing/business/klanten/javascript/nodeJS/express/basing/views/<h2>wow</h2>.html' 但是,当删除xvariables并直接将对象文字添加到res.render参数列表中时,再次正常工作。 exports.index = function(req, res){ res.render("index.html", {jow: "ieps", partials:{footer:"footer", header:"header"}}) } 更新:index.html视图 {{> header}} <h1>jow en {{jow}}</h1> {{> footer}} 查看这个藤蔓快速浏览: https://vine.co/v/M7BYi75pdrh 有些见解将不胜感激,谢谢。

节点js redis遍历每个散列键值

我对redis&node非常陌生,现在我试图通过一些我已经创build并打印出来的testing哈希键进行循环来筛选结果。 这是我期望看到的结果: { "aaData": [['Tim Osbourne'],['Joe Bloggs'],['John Doe'],['Perry Coke'],['Will Holmes'],['Steven Smith']} 但是我得到这个结果: { "aaData": [[],[],[],[],[],[],]}'Tim Osbourne','Joe Bloggs','John Doe','Perry Coke','Will Holmes','Steven Smith', 这是我的代码: app = require('../ app'); var redis = require(“redis”), client = redis.createClient(); routes = require('./'); var key_types =''; client.keys(“*”,函数(err,all_keys){ key_types + ='{“aaData”:['; all_keys.forEach(function(key,pos){//使用forEach的第二个参数来获取pos key_types + =“[”; client.hmget([key,'空间的所有者]],函数(err,field_val){ key_types = key_types +“'”+ field_val +“',”; }); […]

Hogan.js部分在预编译模板

是否有可能在编译模板中有部分? 这似乎是可能的,因为部分名称是在编译对象中引用的,但我不知道如何使其工作。 我在服务器端(node.js)预编译Hogan.js模板并在客户端使它们可用。 这是模板的一个片段: <ul class="log-{{id}}"> {{#entries}} {{> entry}} {{/entries}} </ul> 一旦这个模板被编译了,我就会看到一个关键字为<entry0的对象中的partials属性 我能够使用以下代码在客户端渲染模板: var data = {id: 11, entries: [{ id: 1, name: 'Entry 1'}, {id: 2, name: 'Entry 2'}]}; template = new Hogan.Template(compiledTemplate); template.render(data); 模板呈现得很好,但{{#entries}} {{/entries}}块内没有任何{{#entries}} {{/entries}} 。 部分本身也是预编译的,可在客户端使用。 我试图通过几种不同的方式来传递,包括: template.render(data, {partials: { entry: compiledEntryTemplate }}); 所有的迹象似乎都应该是可能的,但我无法弄清楚或find任何指出如何去做的文档。 我正在使用Hogan.js 3.0.1

Hogan,子目录中的参考文件

使用partials或模板inheritance,真的不可能从子目录引用.mustache文件? 换句话说,像一个目录结构 |- views ||- templates |||- base.mustache ||- somePage.mustache somePage.mustache是沿线的东西 {{< templates/base }} {{$content}} … {{/content}} {{/ template/super }} 要么 {{> templates/base}} … 如果基础胡须文件不在子目录中,但两者都可以使用,但不适用于"templates/"添加。 这是真的不可能使用Hogan.js或我错过了什么…因为我已经尝试了所有我能想到的逻辑变化…而官方规范并没有真正解决这是如何工作清楚。

加上支持expression

我想为我的快递添加支持。 我已经看到这个教程正在显示 $ express -h Usage: express [options] [dir] Options: -h, –help output usage information -V, –version output the version number -e, –ejs add ejs engine support (defaults to jade) –hbs add handlebars engine support -H, –hogan add hogan.js engine support -c, –css <engine> add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css) –git add […]

如何在Hogan js中使用in for循环

我在节点js中是新的。 我正在使用Express JS和Hogan JS模板引擎。 我知道我们不能在这个模板中使用逻辑,但是我需要在视图代码中为循环语句执行if语句来生成表格字段。 我尝试了很多东西,甚至连我也跟着这个链接。 但是,只有在例如同时给予双方都没有解决scheme的情况下。 我的数据是在这个表格中 [ { buln_id: 1, name: 'Himanshu', cname: 'India', created_date: 'Tue Jul 07 2015', state_name: 'Chandigarh', city_name: 'Chandigarh', locality_name: 'Behlana', office_type_name: 'SCO', office_number: '1234', floor_no: 'ground floor', section: 'a', owner_name: 'RAvi', mob_no: '123456789', email_name: 'aaa@gmail.com', web_name: 'sss.com', landmark: 'sss', bus_info: 'IT', service: 'sss', pay_details: 'Cash', net_surrfing: 'a', verification: […]