Articles of 达帕格

node.js jade模板 – 自定义语法和replace?

我试图让玉为我自动生成url: 所以如果我有像这样的用户链接: .userLink a(href="/#{user}") #{user} 我希望能够用(假设的语法)来代替它: .userLink userLink(#{user}) 无论如何要做到这一点? 谢谢 编辑:OKAY我明白了: mixin userLink(user) a(href="/" + user)= user mixin userLink("Bob") 看起来像这样会工作。

如何从Express / Node.js中的dynamic生成的内容分离内联的JavaScript?

对于那些有几年Web开发经验的人来说,这是一个稍微低级的问题,但是在Programmer Stack Exchange或Google上找不到答案之后,我决定在这里问一下。 我为Node.js使用Express web框架,但这个问题并不是特定于任何web框架或编程语言。 以下是从数据库中查询的游戏列表。 每个游戏实体都是使用for循环生成的单个表行: table.table tbody for game in games tr td.span2 img.img-polaroid(src='/img/games/#{game.largeImage}') // continues further 每个评级块,以及每个买入button/模式对话框都是由for循环生成的,并且与游戏相匹配。 例如,“刺客信条”的“ 购买”button将具有id =“价格刺客信条” 。 #{variable} – 是如何引用Jade中的variables,从服务器传入的。 button.btn.btn-primary.btn-mini(id='price-#{game.slug}', href='#buyModal', role='button', data-toggle='modal') 和 .modal.hide.fade(id='modal-#{game.slug}', tabindex='-1', role='dialog', aria-labelledby='myModalLabel', aria-hidden='true') .modal-header span.lead Game Checkout img.pull-right(src='/img/new_visa_medium.gif') .modal-body label i.icon-user | Name on Card input.input-medium(type='text') label i.icon-barcode | Card Number […]

在express上预编译生成的jade模板会有好处吗?

在生产中使用jade-lang的时候,我是否会从某种forms的中间件中受益,这些中间件会预编译所有的.jade视图,然后在res.render中使用它们? 或者当你做NODE_ENV =生产时会自动发生吗? 我只是在探索如何加速生产中的玉石渲染的选项。

在漂亮的打印时避免在Jade模板输出中的标签之间的空白

我不得不在一个label的结尾和下一个的开始之间打印出一个input标签和一个label ,但是我也想打印出文档的其余部分。 默认情况下 – 在Jade打开漂亮的打印 – 我得到以下内容: <input …></input> <label …></label> 我想要: <input …><label …></label> 要么 <input …></input><label …></label> 来自Jade的想法- 控制HTML输出中的换行符不起作用,因为input是自闭标签。 更新1:我已经使用mixin和文字HTML创build了明显的解决scheme,但是我希望尽可能避免这种情况。

将一个variables从玉传递给javascript

我试图从路由处理程序传递给JavaScript文件的variables。 获取首页的快递路线是: exports.home = function(req, res){ var _ajaxData = [ ["#collections","collections", "Collections"], ["#candidates","candidates", "Candidates"], ["#entries","entriess", "Entries"], ["#exits","exits", "Exits"] ]; res.render('home/home', { title: 'Welcome to My Web', _ajaxData: _ajaxData}); }; 我的玉文件如下所示: extends ../layout/base block content each item in _ajaxData div(id= item[0]).col-md-6 h3.panel-title= title .panel-body | Loading content… script(src='js/home.js') 内容在home.js中使用ajax加载,如下所示: var ajaxData = JSON.stringify('!{_ajaxData}'); console.log(ajaxData); // Further […]

nodejs玉条件扩展

我想让我的Jade页面根据条件扩展不同的布局。 所以我的代码如下所示: if myConditionVariable extends layout1 else extends layout2 block content p here goes my content! 现在这不起作用。 看起来好像只有最后定义的扩展将受到尊重,无论条件如何。 我也试着dynamic地定义templatename,比如 extends myLayoutNameVariable 并以不同的方式设置myLayoutNameVariable(表示dynamic帮助函数,将其设置为var,local var等) 有没有其他解决scheme的条件布局,或者有人可以告诉我我做错了什么? 欢呼声,西蒙

链接到其他的玉文件

我想了解Express和Jade的工作原理。 首先,当我使用layout.jade作为模板文件(header,body,footer)并使用不同的文件在主体中显示信息时(请参阅下面的示例),我是做得对吗? 代码工作正常,但我不确定这是否是在Express中做正确的方法。 如果我应该继续这个结构,我怎么能链接到其他文件(例如,about.jade)从例如index.jade内部,以显示该文件,而不是index.jade? 提前致谢! layout.jade: !!! 5 html head title= title link(rel='stylesheet', href='/stylesheets/style.css') script(type='text/javascript', src='https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js') script(type='text/javascript', src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js') script(type='text/javascript', src='/javascripts/external.js') // Header header#header // Navigation nav#nav // Navigation code (ul, li etc)… // Sidebar aside#sidebar // Sidebar code… // Body body!= body index.jade: !!! 5 html head title= title section#wrapper img.imageStyle(src = '/images/test1.png') // And […]

如何在jade中呈现json对象并通过结果循环

当我发送一个JSONstring到一个玉文件的时候,我只能打印出整个string,而不是它的元素。 如何打印出特定的元素或通过JSONstring循环? app.js: var http = require('http'), express = require('express'), net = require('net'); var app = express(); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.logger('dev')); app.use(express.static(__dirname + '/public')); app.get('/', function (req, res) { var json_string = {"action":"date +%s","result":"1367263074"}; res.render('index', { layout : 'layout', json: JSON.stringify(json_string) }); }) app.listen(3000); layout.jade: !!!5 html head body p !{json} […]

Jade – 从不同目录加载模板

我正在尝试使用Peepcode的Node.js Full Stackvideo,看起来他们使用的是旧版本的express / jade。 没有提及使用块/扩展来渲染布局。 应用程序中使用的设置是为所有子应用程序加载一个/views/layout.jade文件。 子应用的视图位于/ apps //视图中。 我的server.js似乎很标准。 Express是3.0.0rc1版本 require('coffee-script'); var express = require('express') , http = require('http') , path = require('path'); var app = express(); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); }); app.configure('development', function(){ app.use(express.errorHandler()); }); require('./apps/authentication/routes')(app) http.createServer(app).listen(app.get('port'), […]