Articles of handlebars.js

把手SWAG图书馆

我是Handlebars中的新手,我正在尝试使用SWAG库进行自定义帮助程序,但未成功。 例如,我尝试显示在我的file.handlebars {{小写“BENDER SHOULD NOT BE BE ALLOWED ON”}} ,我得到错误错误:无法find属性'小写'我跑npm安装赃物 我的app.js是: var express = require('express') , http = require('http') , routes = require('./routes') , path = require('path') ,Swag = require('swag') , handlebars = require('handlebars'); var app = express(); var engines = require('consolidate'); app.engine('handlebars', engines.handlebars); app.configure(function() { app.set('view engine', 'handlebars'); app.set('views', __dirname + '/views'); app.set('port', process.env.PORT […]

用node + express中的新数据更新句柄模板

我已经设法让我的句柄工作在一个节点+快递的应用程序,并根据哈希标签,我没有检索到任何问题,并在第一次在页面上的鸣叫呈现第一时间没有问题的加载数据。 我现在的问题是试图用新的推文来更新模板。 我有我的路线下面的代码: new twitter.TwitterStream().getHashTagStream(tweetsRetrieved); function tweetsRetrieved(tweets) { twitterSearchResults = tweets; } module.exports = function(app) { app.get('/', function (req, res){ res.render('index', twitterSearchResults); }); }; 我已经尝试了渲染和getTweets方法周围的setIntervals和控制台日志logging,我确实看到我的Twitter的最新鸣叫的响应,但模板没有更新。 任何帮助将不胜感激。 谢谢 汤姆

如何使用Express,Handlebars和Conslidate在Node.js中设置path

我有一个工作的Node.js网站,使用Express.js,Handlebars.js和Consolidate.js。 我想为我的模板的公共部分使用partials,但是不能解决如何使它们适用于不同URL的页面。 我的/views/目录包含这个: _footer.html _header.html article.html index.html 我的Node应用程序的相关部分如下所示: var express = require('express'), consolidate = require('consolidate'), handlebars = require('handlebars'), path = require('path'); var app = express(); app.engine('html', consolidate.handlebars); app.set('view engine', 'html'); app.set('views', path.join(__dirname, '/views')); var partials = {header: '_header', footer: '_footer'}; app.get('/', function(req, res) { res.render('index', {partials: partials}); }; app.get(/^\/([\w-]+)\/$/, function(req, res) { res.render('article', {partials: partials}); […]

更新handlebarJS预编译器

我正在使用句柄预编译器来编译使用该命令的句柄模板 handlebars *.tpl -f *.js 我正在使用handlebar.runtime-v1.1.2.js使用预编译的车把模板。 用以下代码执行编译后的模板 Handlebars.template('****'); 我得到一个错误 Uncaught Error: Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (>= 1.0.0) or downgrade your runtime to an older version (<= 1.0.rc.2). 任何人都可以指导我更新手柄预编译器到最新的Linux机器上。

express3-handlebars和18next-node – 基于页面的国际化?

我的第一个问题 – 请容易。 我使用express,express3-handlebars和i18next-node与node.js 该计划是根据哪个视图(即哪个句柄文件)当前正在服务于不同的翻译命名空间。 因此,如果我们查看名为ie(.hbs)的页面,则i18next将在名为ie(.json)的相关语言中查找。 这使得翻译的组织和协调更容易。 这就是我目前的做法:首先,我将当前页面发送到handlebars模板进行渲染(即使这似乎是不必要的 – handlebars不会自动暴露它渲染的文件): res.render( url_base_path, { layout: ("sub"), title: title, currentpage: url_base_path } ); 然后我在当前页面的命名空间中访问要翻译的variables“greeting”,就像{{t "greeting" page=currentpage }} – 令人讨厌的是每个页面上有10个variables。 不要重复自己,有人吗? 't'是在express3-handlebars create()函数中定义的,如下所示helpers: { t: t } 翻译function看起来像这样 var t = function (i18next_key, options) { var page, result; page = options.hash.page; result = i18next.t(page + ":" + i18next_key); […]

鲍尔安装,但给每个命令的错误

我已经通过npm npm install -g bower ,我没有问题。 但是当我想运行凉亭,即使只是bower或bower -help我得到以下错误: module.js:340 throw err; ^ Error: Cannot find module './parser' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/usr/local/lib/node_modules/bower/node_modules/handlebars/lib/handlebars/compiler/base.js:1:80) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) 似乎无法在网上find任何与此问题的人。

无法使用Node的Express访问Handlebars模板中的对象属性

我在Express框架下使用Handlebars的hbs模块: var hbs = require('hbs'); app.set('view engine', 'html'); app.engine('html', hbs.__express); 像这样设置我的视图variables: userModel.find({ twitter: username }, function(err, profile){ if(err){ return next(err); } res.render('profile.html', { profile: profile }); }); 如果我在模板中这样做: {{profile}} 我得到: { name: 'xxxxx', twitter: 'xxxxx', avatar: 'xxxxxxxx', _id: 531cd64568282e0000000001, __v: 0, links: [], booked: [] } 但是,如果我做一些简单的事情: <p class="profile-name">{{profile.name}}</p> 在同一个文件中,没有输出! 有任何想法吗?

将Flash消息暴露给Handlebars模板

我正在构buildSPA:Backbone.js,Node.js,Mongo。 我使用Passport.js进行身份validation,并想知道如何将req.flashvariables暴露给我的Handlebars模板? 在这种情况下,如果用户试图用电子邮件login,我想在我的视图中公开flashvariables“signupMessage”。 在我的Express服务器上: app.use(function(req, res, next){ res.locals.flash = req.flash next(); }); 护照本地策略: passport.use('local-signup', new LocalStrategy({ usernameField : 'email', passwordField : 'password', petnameField : 'petname', passReqToCallback : true // allows us to pass back the entire request to the callback }, function(req, email, password, done) { process.nextTick(function() { User.findOne({ 'local.email' : email }, function(err, user) […]

Koa-handlebars:无法渲染视图:无法find部分

// project/layouts/main.hbs <!DOCTYPE html> <html lang="en"> <head> </head> <body> {{{@body}}} </body> </html> // project/views/home-public.hbs {{> nav-public}} <div class="container"> <div class="starter-template"> <h1>Home Public</h1> <p class="lead">This is my home.</p> </div> </div> // project/partials/nav-public.hbs <nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> […]

在Ember.js中预编译模板

我正在创build一个带有Node后端的Ember项目,并希望将我的模板作为单独的文件,而不是将它们内联在index.html文件中。 我已经阅读了很多文章解释这一点,但是我仍然无法把头脑包裹在整个过程中,以及index.html文件等等什么时候完成。 咕噜是最有效的做这样的事情? 这是我的grunt文件的样子。 Gruntfile.js: grunt.loadNpmTasks('grunt-ember-templates'); grunt.registerTask('build', ['emberTemplates', 'concat', 'uglify']); //pass the compiled templates into your concat and uglify tasks. Don't worry, they don't care if they are mushed altogether // with the following task in the Grunt.config emberTemplates: { compileComponents: { options: { templateBasePath: /templates\// }, files: { 'build/precompile/components.js': 'templates/components/*.hbs' } }, compileRoutes: { […]