Articles of handlebars.js

预编译为纯HTML的手把

有没有办法将Handlebars模板预编译为纯HTML? 把手预编译产生一个js文件。 我可以在节点上运行JS来生成一个HTML文件吗? 这就是我想要的: // Get a Handlebars instance var hb = require("handlebars"); // Load a template import fs = require('fs'); var template:string = fs.readFileSync('templates/template.handlebars','utf8'); // Compile said template var compiled = hb.precompile(template); // Write JS file fs.writeFileSync('compiled/template.js', compiled); var test = compiled.main(); // Write HTML file fs.writeFileSync('compiled/template.html', test); 这会失败,因为编译.main不是一个函数。 在那里有一个主要的function,我正在试图find。

Express +句柄上的Socket.io在https上不起作用

我正在尝试使用socket.io,但是当我在服务器上运行它时,使用https,我的socket.io不起作用。 我的app.js let express = require('express'); let path = require('path'); let favicon = require('serve-favicon'); let logger = require('morgan'); let cookieParser = require('cookie-parser'); let bodyParser = require('body-parser'); let index = require('./routes/index'); let users = require('./routes/users'); let dashboard = require('./routes/dashboard'); let app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'hbs'); // uncomment after […]

在expressjs句柄.hbs视图不加载我的部分

# app.js app.set('view engine', 'hbs'); # ./views/layout.hbs {{> nav}} # ./views/nav.hbs <a href="#">home</a> layout.hbs文件没有find我的部分nav.hbs 我在节点app.js控制台上得到以下错误: 抛出新的Handlebars.Exception(“部分”+名称+“不能是fo ^

比document.write()更好的实践来加载网站中的外国内容?

我有一个小部件(一些html代码)应该可以加载在不同的网站(这是不是我的控制下),但小部件托pipe在我的服务器上。 直到现在我有一个PHP脚本生产JavaScript代码看起来像这样: document.write('<div> … some more dynamic html …</div>'); 然后可以在任何带有标签的html页面上加载。 现在我正在计划重新devise,并希望与服务器端JavaScript做PHP部分。 我仍然需要输出document.write(),或者现在有一个更聪明的方式,因为我们有handlebarjs,node.js等。另外:我会感兴趣的是我喜欢meteor或德比这些新的奇特autoupdatefunction框架提供… (我想用meteor(meteor.com)做这项工作,但meteor输出完整的HTML页面,我不需要整个页面) 感谢您的帮助/build议

meteor模板中的简单数据reflection

我是meteor的新手,有一个很大的误解,就是模板如何处理数据reflection。 例如,我有这样的数据库中的一些数据: {name: {firstName: "foo", lastName: "bar"}, father: "buz"} 我能反映出来的方式对我来说真的很可怕。 我只能这样反映: JS: var Products = new Meteor.Collection("Products"); if (Meteor.isClient) { Template.DataTry.dataTryArr = function(){ return DataTry.find({father: "buz"}); }; } HTML: <head><title>…</title></head> <body>{{>DataTry}}</body> <template name="DataTry"> {{#each dataTryArr}} <p>Mr. {{father}} has a son {{name.firstName}}. They are both {{name.lastName}}</p> {{/each}} </template> 这是工作和反思。 但我不明白, {{#each}} dataTryArr {{#each}} ,为什么我需要dataTryArr ! 是不工作的W […]

Meteor.js / Handlebars.js – 了解程序编码风格和范围

我第一次使用Meteor.js框架,并且无法理解模板系统事件的顺序(从来没有使用过Handlebars.js),以及如何处理范围。 我有一个名为audio.js的文件。 在这个例子中,我定义了一个类并使用该类初始化一个variables: // Question about this as well, how do I properly make a jQuery class? // Is this the right way? $.Audio = function() {} $.Audio.prototype = { init: function() { this.ele = $('.blahblah'); } startAudio: function() { // do things } } var Music = new $.Audio(); 所以我的var Music是在audio.js创build的。 现在,在另一个js文件中,我正在做一些模板function: Template.bars.rendered = […]

在Meteor中重用或重新创build被动源是否更好?

我有一个叫“联系人”的模板。 里面是一个渲染模板“contact”的#each。 用户可以按下“编辑”button,用编辑行的mongo id设置会话variables。 该行然后被动地重新渲染成“编辑”模式。 Template.contact.viewEditing = function() { return Session.get("contactViewEditingId") === this._id; } html使用viewEditing助手几次,例如: {{#if viewEditing}} <div class="panel-heading">EDITING!</div> {{/if}} 我需要在.rendered()中绑定一些javascript。 我想再次检查我们是否正在编辑。 我可以想到2个选项: 我应该在我的template.rendered()里面调用Template.content.viewEditing()吗? 这是否节省react native计算? 或者我应该只复制面食if语句。 这个选项似乎违反了DRY。 选项1: Template.contact.rendered = function() { if( Template.contact.viewEditing.call(this.data) ) { // Bind some fancy jQuery bindEditInPlace(this.data); } } 选项2: Template.contact.rendered = function() { if( Session.get("contactViewEditingId") === this._id ) […]

有没有一种方法可以根据Meteor中的用户angular色附加模板事件?

我想知道,因为我还没有弄明白,如果有一种方法来附加meteor的模板事件,如: Template.businessOperations.events({ 'dblclick .display': function (evt, tmpl) { //DO SOMETHING; } } 基于当前用户的angular色。 例如: if (Meteor.user().profile.type === 'admin') { Template.businessOperations.events({ 'dblclick .display': function (evt, tmpl) { //DO SOMETHING; } } } 我已经尝试过,它没有工作,我也尝试从实际的事件方法获取用户,也没有工作,我有点没有看到正确的解决scheme在这里。 在此先感谢您的帮助。

用于node.js的模板引擎

我正在使用节点js为我的网站项目,现在我不知道模板哪一个更好handlebars或embeddedejs感谢您的任何帮助

无法查看视图

嗨,我试图与使用手柄快车3。 但是我无法“查看视图”,我被这个错误困住了。 Error: Failed to lookup view "500" in views directory "d:\projects\meadowlark\site\views" at EventEmitter.app.render (d:\projects\meadowlark\site\node_modules\express\lib\application.js:519:17) at ServerResponse.res.render (d:\projects\meadowlark\site\node_modules\express\lib\response.js:904:7) at d:\projects\meadowlark\site\meadowlark.js:29:7 at Layer.handle_error (d:\projects\meadowlark\site\node_modules\express\lib\router\layer.js:58:5) at trim_prefix (d:\projects\meadowlark\site\node_modules\express\lib\router\index.js:269:13) at d:\projects\meadowlark\site\node_modules\express\lib\router\index.js:238:9 at Function.proto.process_params (d:\projects\meadowlark\site\node_modules\express\lib\router\index.js:313:12) at d:\projects\meadowlark\site\node_modules\express\lib\router\index.js:229:12 at Function.match_layer (d:\projects\meadowlark\site\node_modules\express\lib\router\index.js:296:3) at next (d:\projects\meadowlark\site\node_modules\express\lib\router\index.js:190:10) 对我来说真的很奇怪 任何人都可以解释这个问题,我怎么能解决它? 我的js代码如下: var express = require('express'); var app = express(); // set up handlebars view […]