Articles of handlebars.js

express-handlebars如何通过helper函数呈现JSON对象

var express = require('express'); var exphbs = require('express3-handlebars'); var app = express(); var hbs = exphbs.create({ // Specify helpers which are only registered on this instance. helpers: { foo: function () { return 'FOO!'; }, bar: function () { var data = { user:[ {name: "foo"}, {pass: "bar"} ] }; return data; } } }); […]

手推车/快递/吞食无法查找视图

我用gulp来分隔javascript文件和一些.hbs文件到这个结构中: project |– app | |– build | |–hbs-views | |–layouts | |–layout.hbs | |–form.hbs | |–js | |–main.js 我的视图引擎configuration使用快速句柄: app.set('views', path.join(__dirname, '../hbs_views/layouts')); app.set('view engine', 'hbs'); app.get('/', function list (req, res, next) { res.render('form'); }); 我在启动应用程序时收到这个错误: [Error: Failed to lookup view "form" in views directory "/hbs_views/layouts"] 我假设main.js抛出这个错误,因为它是唯一的JavaScript文件,所以我指定我的pathform.hbs相对于main.js文件。 我不知道为什么找不到该文件。

把手select的选项

希望select一个基于URL的选项 我的路线是: router.get('/apply/:id', function(req, res){ var query = {"status" : "true"} Apartment.find(query, function(err, apartments){ if(err){ res.status(404).send('Error occured'); } else { res.render('frontend/rental-application', { title: 'Apply | LJH Management', apartments: apartments, wanted_id: req.params.id }) } }) }); 我的观点是: <select name="propertyofinterest" type="text"/> {{#each apartments}} <option value="{{address}} {{city}}"{{#if wanted_id '==' _id}}selected{{/if}}>{{address}} – {{city}}</option> {{/each}} </select> 我想我只是能够通过我的req.param.id并设置它,但是,情况并非如此。 我越来越: TypeError:无法读取未定义的属性“includeZero”。 我怎样才能解决这个问题?

如何在快递JS中的选项卡内呈现部分视图?

我想知道如何在选项卡面板中渲染局部视图。 我的路线从索引页面开始使用下面的代码: var express = require('express') , router = express.Router() , index = require('../models/index') router.use('/users', require('./api/users')) /*GET home page*/ router.get('/', function(req, res) { index.all(function(err, gridData) { res.locals.gridData = JSON.stringify(gridData.details); res.render('index'); }); }); 和我的索引页面如下: <div id="MainTab"> <ul> <li><a href="#Tab1">Tab1</a></li> <li><a href="#Tab2">Tab2</a></li> <li><a href="#Tab3">Tab3</a></li> </ul> <div id="Tab1"> {{> Tab1 }} </div> <div id="Tab2"> {{> Tab2 }} </div> […]

在Express JS中渲染部分视图覆盖相同的页面

我在网格顶部有一个网格logging和一个button。 一旦从网格中select了一条logging并点击了button,我必须使用一个表单来渲染一个局部视图。 我不知道如何渲染控制器的部分视图。 请在下面find我的文件夹结构: –views –partials –header –footer –main –form_page –route –index –api –grid Header和footer是所有页面的默认值。 最初主页面将被渲染为局部视图。 点击button后,我必须将其replace为form_page 。 它基于快速js和车把。

将表单属性传递给partials

我正在使用NodeJS的应用程序,并已能够使用句柄和partials没有太多的麻烦。 我正在开始view和edit汽车表格。 例如,用户提交一个应用程序后,我有分别转到localhost:3000/cars/:id/view和localhost:3000/cars/:id/edit “查看”和“编辑”链接。 这两个链接之间的唯一区别是“查看”页面的forms只有readonly="readonly" ,“编辑”没有readonly属性。 我想做什么 汽车/图 {{ >car_form readonly=true }} 汽车/编辑 {{ >car_form readonly=false }} <button type="submit">Submit</button> 这是可能的句柄模板? 还是有什么类似的,我可以做得到我想要的结果? 谢谢!

把手模板被渲染为原始的HTML

我试图得到一个简单的页面与节点和句柄运行,但页面无法正确呈现。 当我去http:// localhost:8080 /我只是在浏览器中获得原始的HTML文本。 这是我的代码: main.js var express = require('express'); var app = express(); var handlebars = require('express-handlebars').create({defaultLayout:'main'}); app.engine('handlebars', handlebars.engine); app.set('view engine', 'handlebars'); app.set('port', 8080); app.get('/',function(req,res){ res.type('text/plain'); res.render('home'); }); app.listen(app.get('port'), function(){ console.log('Express started on http://localhost:' + app.get('port') + '; press Ctrl-C to terminate.'); }); home.handlebars <h1>The Home Page</h1> main.handlebars <!doctype html> <html> <head> <title>Demo Page</title> […]

使用选定的下拉选项作为在node.js Kmeans函数中使用的variables

我需要从.hbs文件中的代码块中检索选定的下拉值… <div class="section-color"> <div class="jumbotron jumbotron-md center-block"> <h2>{{survey.name}} Cluster</h2> <p>This cluster was calculated using kmeans with k = {{k}}</p> <p> Change cluster to: </p> <select class="form-control" name='kvalue' id="kvalue" value='{{form.kvalue}}'> <option value=2>2</option> <option value=3>3</option> <option value=4>4</option> <option value=5>5</option> <option value=6>6</option> <option value=7>7</option> <option value=8>8</option> <option value=9>9</option> <option value=10>10</option> </select> <a class='btn btn-default' href='/survey/{{survey._id}}/results'>Clusterize!</a> </div> ..并将其用作此节点中的“k”值.js routes […]

把html文件放到javascript中

我正在用手把做电子邮件模板。 我有我的模板里面的HTML文件。 而且,在另一个文件中 ,JavaScript中的一个程序将在稍后由cronjob启动。 现在,我想保存在一个variables的电子邮件模板正确使用把手。 把手文件说: var source = $("#entry-template").html(); var template = Handlebars.compile(source); 事情是,我没有find一个没有jQuery或Ajax请求(一切都是本地的)的方法。 我怎么能继续?

无法为dynamichtml页面使用句柄hapi js和node js提供静态文件

我试图提供html文件使用hapi和handlebars模板引擎我不能够提供静态文件所需的HTML渲染像CSS,图像和JS当我让urldynamic接受用户的一些参数dynamicHTML文件呈现 这段代码能够为html所需的静态文件提供所有正确加载的css和图像 const server = new Hapi.Server(); server.connection({ port: 3000, host: 'localhost' }); server.register(require('vision'),(err)=>{ Hoek.assert(!err, err); server.views({ engines:{ 'html': { module: require('handlebars'), isCached: false // engine specific } }, relativeTo:__dirname, path:'./templates' }); }); //inert module for serving files server.register({ register: require('inert') }, function(err) { if (err) throw err }) //path for the resources server.route({ method: […]