Tag: handlebars.js

meteor模板助手条件一贯返回false

我对meteor很新,但到目前为止,我真的很喜欢这个平台的编码。 我碰到了一些障碍,似乎找不到正确的方法。 我想创build一个帮助函数,将检查经纬度和检查它对预定义的范围,如果它落在这些之间它返回true。 我已经包含了我现在的代码: Template.header.helpers({ locationCheck: function() { navigator.geolocation.getCurrentPosition(success_callback,error_callback); function success_callback(p){ // Building Latitude = 51.522206 // Building Longitude = -0.078305 var lat = parseFloat(p.coords.latitude); var lon = parseFloat(p.coords.longitude); console.log('Latitude: '+lat); console.log('Longitiude: '+lon); if( lat >= 51.521606 && lat <= 51.522606 && lon >= -0.078805 && lon <= -0.077705 ) { console.log('you are in the […]

Meteor.js中的模板助手和模板variables之间的区别

使用模板助手和模板variables(不正确的术语?)有什么区别? 你什么时候决定使用哪一个? 在下面的例子中, Template.apple.price函数和Template.apple.price的quantity函数看起来都是一样的。 <template name="apple"> {{price}} {{quantity}} </template> Template.apple.price = function() { return 20; } Template.apple.helpers({ 'quantity': function() { return 100; } });

Angular在通过NodeJS服务器提供服务时不更新html模板variables

这是一个具体的问题,但是我有一个答案。 首先,有一点背景。 我一直在试图学习angular度,我想开始使用节点作为后端。 我目前有一个工作的教程应用程序,我可以在本地运行,只是返回硬编码到主控制器的数据。 当我把文件移动到我的NodeJS服务器,但它停止工作。 这是什么工作: 文件加载正确 – 没有控制台错误,我可以查看源文件中的每个文件(index.html,app.js,maincontroller.js) 范围存在,variables被定义。 我把一个console.log($范围)在mainController.js文件中,我可以看到所有正确定义的variables。 非angular度的JavaScript的作品 – 我可以放置在mainController外/警报,他们都正常工作(也console.log显然工程) 我通过一个简单的Node.js服务器来提供这些文件。 我正在使用快递和hbs。 我最初使用的是压缩和0高速caching的长度,但从那以后删除了那些没有改变的结果。 我遇到的具体问题是没有模板variables更新。 我简化了下面的代码进行testing。 在本地查看时,页面显示“我现在了解范围的工作原理!”,当从Cloud 9提供时,该结构存在,但模板中的{{understand}}variables不起作用。 的index.html <!DOCTYPE html> <head> <title>Learning AngularJS</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script> <script src="js/app.js"></script> <script src="js/maincontroller.js"></script> </head> <body> <div id="content" ng-app="MyTutorialApp" ng-controller="MainController"> {{understand}} </div> </body> app.js var app = angular.module('MyTutorialApp',[]); maincontroller.js app.controller("MainController", function($scope){ $scope.understand = "I now understand […]

使用Node.js,Handlebars和Express进行模板inheritance

我刚开始使用Node.js,所以我构build了非常简单的应用程序来练习基础知识。 我试图得到一些像Django一样的模板inheritance工作,但是我在如何做到这一点上有些遗憾。 我明白,图书馆的“expression手柄”包括布局的概念,我认为这可能是最好的办法,但乍一看,我不知道它是否允许一步以上的inheritance,或者使用它来replace不同的块(我看到了一个总体布局,其中插入了其他模板来代替{{{body}}}标记,尽pipe可能有更多的技巧)。 所以,我的问题是:如何实现一个多层模板的inheritance(也有儿童插入不同的独立块,而不是一个单一的内容)? 我正在使用Node.js,Express和句柄,但如果后两者不可能,我不介意尝试其他框架或模板语言。 谢谢! 编辑: 我的意思是伪代码的例子: 首先,我们可以有一个共同的外部模板: <html> <head></head> <body> <h1> Main Title </h1> <h2> {{section name block}} </h2> <h3> {{subsection name block}} </h3> {{content block}} </body> </html> 然后是另一个(中间模板),replace外部块的一些(可能会添加其他块): {{inheriting from outer template}} {{section name block}} Section Three {{/block}} 最后是一个内部的,这将是从JavaScript代码调用的一个: {{inheriting from middle template}} {{subsection name block}} Subsection Two {{/block}} {{content block}} <p>This […]

我如何注册和使用Handlebars助手和Node?

我正在使用Handlebars和Node,并且工作正常: require('handlebars'); var template = require('./templates/test-template.handlebars'); var markup = template({ 'some': 'data' }); console.log(markup); 这工作正常。 但是,我需要在我的模板中注册并使用自定义帮助器。 所以,现在我的代码如下所示: var Handlebars = require('handlebars'); Handlebars.registerHelper('ifEqual', function(attribute, value) { if (attribute == value) { return options.fn(this); } else { return options.inverse(this); } }); var template = require('./templates/test-template.handlebars'); var markup = template({ 'some': 'data' }); console.log(markup); 但现在当我运行我的脚本,我得到了 错误:缺less帮手:'ifEqual' 所以:我怎样才能定义和使用节点中的自定义助手?

有没有办法忽略Handlebars模板内的Handlebars模板?

我在我的服务器端节点应用程序中使用Express + Handlebars,我想将客户端模板作为我要呈现的页面的一部分发送到浏览器。 的index.html <html> <head> <title>{{title}}</title> </head> <body> <div> {{stuff}} </div> <script id="more-template" type="text/x-handlebars-template"> <div>{{more}}</div> </script> </body> 不幸的是,句柄试图渲染#more-template脚本块中的东西。 (这只是删除{{more}}因为它在服务器模板的上下文中是未定义的。 有没有办法让我忽略脚本标签内的东西? (所以客户端模板可以使用它) 我已经看到了这个问题: 服务器和客户端上的Handlebars.js的Node.js ,我宁愿只使用1模板引擎。

用节点注册handlebars助手完全没有

我试图写我自己的把手帮手,我没有得到任何地方。 我使用npm hbs软件包(Handlebars.registerHelper不起作用),并在app.js中注册,如下所示: app.set('view engine', 'hbs'); var hbs = require('hbs'); hbs.registerHelper("log", function(something) { return console.log(something); }); hbs.registerHelper('test', function() { return console.log('test') }); 然而{{log'test'}}或者{{test}}在我的模板里面什么都不做。 在浏览器或terminal控制台中没有产生js错误。 我知道句柄工作正常,因为我有其他的HBvariables正确显示。 我在我的智慧结束在这里试图做一些非常简单的事情,否则我不会尴尬我的自我提出这样一个简单的问题。 感谢您的时间。

预编译手柄模板

我想知道什么是保存预编译的句柄模板并将其包含在HTML文件中的最佳方法。 该网站: http : //handlebarsjs.com/precompilation.html只是build议打电话 把手infile -f outfile 我把一个模板放在一个文件中,并调用命令。 我有一个JS文件包含一个函数program1我现在怎样编译第二个模板? http://jsperf.com/jquery-template-vs-handlebars中的示例包含多个名为program[1-9](…)函数,我假设它们必须以某种方式生成。 是否存储预编译模板的好build议? 我看到示例将脚本或链接标记embedded到HTML文件中,并通过AJAX加载模板并dynamic编译它们。 最好的,Bernhard

assembly句柄嵌套的math帮手

我想知道是否有办法在一个操作中合并两个[Assemble Math助手] 1 。 例如: 我想做{{multiply 12 a}}然后 对结果做{{round}} 谢谢你的帮助。

把手中的“玉块”相当于

车把与玉石块有相同的function吗? 我知道它有局限性,但是我不明白如何用部分模型来模仿玉石的function。 下面是我想用玉来完成的一个例子: 主模板: // layout.jade doctype 5 html head title= title link(rel='stylesheet', href='/stylesheets/style.css') block head body header block header block content footer block footer block scripts 其他模板: // camera.jade extends layout block head link(rel='stylesheet', href='/stylesheets/camera.css') block header h1 Camera block content section#secScreen video#vdoScreen aside#asdControls nav a(href='/') Back a(href='') Refresh a(href='/gallery') Gallery block scripts script(src='/javascripts/camera.js') […]