Articles of handlebars.js

设置Sails js视图扩展名不起作用

我正在使用手柄风帆0.10.5。 我想我所有的车把模板使用扩展名.hbs而不是.handlebars 。 我阅读了sails文档,你可以在config/views设置一个extension属性来改变sails在渲染视图时要查找的文件扩展名。 http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.views.html 我已经设置了我想要使用的扩展,但是在sails正在渲染视图的时候并没有被使用。 这是我去浏览器时得到的索引路线。 { "message": "Could not render view \"index\". Tried locating view file @ \"/Users/jeff/Sites/bcsm/views/index\".", "code": "E_VIEW_FAILED", "status": 500, "view": { "name": "index", "root": "/Users/jeff/Sites/bcsm/views", "defaultEngine": "handlebars", "ext": ".handlebars" } } 这是我的configuration: module.exports.views = { engine: 'handlebars', layout: false, ext: '.hbs' }; 我也试过以下,没有运气: extension: 'hbs' extension: '.hbs' ext: 'hbs' 有没有人解决过这个问题,或有任何想法?

注册自定义助手Express和HBS

我是一个完整的Node新手,请耐心等待。 我使用带有-hbs标志的快速生成器模块将默认的模板引擎切换到句柄。 我现在正在尝试注册一个自定义帮助器,允许我将页面特定的内容添加到位于布局模板中的元素。 我无法find我应该注册自定义hbs助手的地方:我试过了下面的代码(我在这里find了:“。\ node_modules \ handlebars \ dist \ cjs \ handlebars \ compiler \ helpers.js” http://www.apkapps.link/questions/2420017/handlebars-with-express-different-html-head-for-different-pages ): function section(name, options){ if(!this._sections) this._sections = {}; this._sections[name] = options.fn(this); return null; } exports.section = section; 但是,当我尝试从模板调用帮助器时,我得到一个“失踪的帮手:”部分“” 有人可以指出我正确的方向吗?

{{#each}}中的把手表情

我build立我的下一个投资组合网站 我怎么可以在#each循环中放置句柄expression式? 这是快速生成器生成的快速应用程序。 我正在使用express-handlebars NPM包: views/home.hbs : {{#each images}} <li><img src="{{imagesFolder}}{{this}}.jpg" alt=""></li> {{/each}} routes/home.js : 'use strict'; var express = require('express'), router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('home', { layout: 'main', centering: true, titleShown: false, title: 'Hi!', description: 'Home page', keywords: 'wedding,photography,film', bodyClass: 'horizontal', imagesFolder: '\/portfolio\/weddings\/', images: [ […]

Node.js Express app:如果存在cookie,则将CSS class添加到服务器端的元素中

我有一个快速的静态网站应用程序。 我用app.js中的cookie调用我的网站的翻译: // i18n app.get('/hu', function (req, res) { // http://127.0.0.1:3000/hu res.cookie('locale', 'hu', { maxAge: 900000, httpOnly: true }); res.redirect('back'); }); app.get('/en', function (req, res) { // http://127.0.0.1:3000/en res.cookie('locale', 'en', { maxAge: 900000, httpOnly: true }); res.redirect('back'); }); 如果有人访问http://127.0.0.1:3000/en URL,则会存储调用翻译的Cookie。 hu是默认的语言,当有人第一次访问我的网站时,没有存储任何cookie。 但是,如何在英文翻译处于活动状态时将CSS类添加到我的网站? 我有一个导航栏,中间是水平居中的标志。 在英语语言中,单词的长度不同,甚至导致居中的柔性盒元素left-nav | logo | right-nav left-nav | logo | right-nav left-nav | […]

获取模板是用我的Node.JS应用程序预编译新版本的Handlebars错误?

我正在尝试创build一个使用开源的Alpaca Forms包的Node.JS应用程序: http://www.alpacajs.org/ 我正在使用节点版本: v0.10.25 当我从教程中运行testing页面时: http://www.alpacajs.org/tutorial.html 使用该教程中的第二个示例页面: <html> <head> <link type="text/css" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" /> <link type="text/css" href="//code.cloudcms.com/alpaca/1.5.17/bootstrap/alpaca.min.css" rel="stylesheet" /> <script type="text/javascript" src="//code.jquery.com/jquery-1.11.1.min.js"></script> <script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.3/handlebars.js"></script> <script type="text/javascript" src="//code.cloudcms.com/alpaca/1.5.17/bootstrap/alpaca.min.js"></script> </head> <body> <div id="form"></div> <script type="text/javascript"> $(document).ready(function() { $("#form").alpaca({ "schema": { "title":"User Feedback", "description":"What do you think about Alpaca?", "type":"object", "properties": { "name": […]

../这将返回内部循环内的视图对象,当父和子具有相同的值

我只是开始与handlebars ,我想做一个简单的双循环为了有一整天的时间15分钟的时间间隔。 一个非常奇怪的事情发生在如果孩子和父母具有相同的值, view对象被返回。 这是我的代码: var handlebarsExpress = require('express-handlebars').create({ helpers: { for: function(from, to, incr, block) { var accum = ''; for(var i = from; i <= to; i += incr) { accum += block.fn(i); } return accum; } } }); app.engine('handlebars', handlebarsExpress.engine); app.set('view engine', 'handlebars'); … … 在视图文件( sth.handlebars )我有这个: <div class="row columns large-12"> […]

把手从数组中呈现全部

在我的appjs文件中,我试图以降序显示所有文章标题。 这工作正常,问题是mongoose返回一个数组,我不知道如何写在句柄中。 var bmtitles = BlogModel.find().select('title date').sort("date", -1); bmtitles.execFind(function(err, ttles) { console.log(ttles); var model = { layout:'blog.hbs', BmTitles: ttles, }; //render page res.render('blog', model); }); 我已经尝试过这样的事情,但没有工作: {{BmTitles.n.title}} {{BmTitles.title}} {{BmTitles}} 这是ttlesvariables返回的内容(只有两个testing职位) [ { _id: 5011b563a947b943dc32d6f5, title: 'Blog title one', date: Sun Jan 01 2012 18:00:00 GMT-0600 (CST) }, { _id: 5011c155a947b943dc32d6f6, title: 'secondpost', date: Sat Dec […]

Node.js + Handlebars + Express如何引用句柄模板?

我相对新的Node&Express,但句柄模板,我从来没有用过,并试图引用他们在我的节点app.js,但我一直得到以下错误 对象#的属性“引擎”不是一个函数 这是我的代码: app.configure(function () { app.set('views', __dirname+ '/views'); app.set('port', 3000); app.set('view engine', 'handlebars'); app.use(handlebarsLayout); app.use(express.static(path.join(__dirname, 'public'))); app.use(app.router); }); // ROUTES app.get('/', function (req, res){ var data = { title: "Node + Handlebars", body: "Hello World!" } res.render('index', data); }); http.createServer(app).listen(app.get('port'), function () { console.log("Express server listening on port " + app.get('port')); }); 任何帮助将不胜感激。 谢谢,汤姆

使用handlebars.js显示JSON数据

我需要弄清楚如何将完整的JSON响应打印到我的页面上(甚至是其中的一部分),但我似乎无法弄清楚。 我将最终填写更多的上下文页面。 JS文件: app.get('/', function(req, res) { var context apiLib.fetch('acct:chars', function(err, result){ if(err) throw err context = result; console.log(result); res.render('/', context); }); }); 把手: {{#each context.characters}} {{this.name}} {{/each}} JSON数据: { "result": { '1234':{ //this is the character ID "characters": { "name": 'Daniel', "CharacterID": '1234' etc… } } } 我的页面什么也不打印,但控制台logging一切。 我正在使用express.js来处理路由。

无法加载Handlebars帮助器function

我正在尝试创build一个自定义的hbs帮助器,并在我的express.js应用程序的页面中使用它。 这是我如何做,但它一直说: 缺less帮手“if_eq” 我的页面: <html> <head> <script src="javascripts/handlebars-v4.0.6.js" type="text/javascript"></script> <script src="javascripts/hbs_funcs.js"></script> </head> <body> {{#if_eq page "home"}} <li class="active"><a href="/home ">LOBBY</a></li> {{else}} <li><a href="/home ">LOBBY</a></li> {{/if_eq}} </body> </html> 这是我的hbs js文件: Handlebars.registerHelper('if_eq', function (a, b, opts) { if (a == b) // Or === depending on your needs return opts.fn(this); else return opts.inverse(this); });