我运行0.9.7并安装了车把,这是Consolidate.js支持的,因此是由帆支撑
我可以从.handlebars文件中提供页面,它工作得很好。我不知道在什么地方,在帆的工作流程,和一个帆的方式,我应该注册部分,助手等.我更多的是寻找最佳实践,而不仅仅是一个有效的解决方案,但是任何帮助都将受到感谢。
发布于 2014-02-03 21:59:39
我运行的是0.10测试版,但这不会影响我如何让它在下面工作:
config/views.js
module.exports.views = {
engine : 'handlebars',
layout : false
};config/routes.js
'/': {
controller: 'site',
action: 'index'
},SiteController.js
module.exports = {
// Render Index View
index: function(req, res) {
res.view({
partials: {
head: 'partials/head',
tail: '../partials/tail',
},
});
}
};views/site/index.handlebars
{{> head}}
<h3>SITE INDEX</h3>views/site/partials/head.handlebars
<h1>HEAD</h1>
{{> tail}}views/partials/tail.handlebars
<h2>HEAD TAIL</h2>输出
<h1>HEAD</h1>
<h2>HEAD TAIL</h2>
<h3>SITE INDEX</h3>发布于 2014-01-05 10:51:49
我正在使用上面给出的答案,但我似乎已经使部分的工作与帆0.9.8没有黑客。
这是我所拥有的。
Config/views.js =>引擎:“工具栏”
视图/home/index.handlebar使用分部的=>主文件。
视图/home/partials/Paral.handlebar =>分部正在使用。
那么,只要你使用这样的东西,它就能完美地工作。res.view({ partials:{分部:‘partials/分部’,页脚:‘partials/页脚’})
路径相对于默认调用的模板文件。因此,如果每个控制器需要不同的部分,则使用partials/,如果要对所有模板使用全局部分,则使用../ partials /
显然,这对您来说是完全正确的,因为您需要在控制器中手动指定每个部分。
发布于 2013-11-07 23:34:21
编辑:这是相当容易实现通过高速公路3把手模块,同时不改变任何默认的帆功能,除了要求你把你的布局文件到views/layouts。如果您愿意的话,我在这里打开了一个拉请求(https://github.com/balderdashy/sails/pull/1075)。
在对sails源代码进行了一些深入研究之后,在呈现视图时引入部分是相当容易的。
当您在控制器操作中调用res.view时,只需作为“局部变量”的一部分传入partials对象,其中包含您希望呈现的部分列表。
// LoginController.js
new: function (req, res) {
res.view({
partials: {
header: '../partials/header',
footer: '../partials/footer'
}
})
}
// new.handlebars
{{> header}}
<b>Main content</b>
{{> footer}}通过附加名为helpers的键并传递功能,可以以类似的方式注册帮助程序。
如果在Sails中有一种更正式的方法来实现这一点,那就太好了,但是现在,对于那些想要使用把杆而不是ejs,同时保留一些外观布局的人来说,这应该足够了。
https://stackoverflow.com/questions/19810671
复制相似问题