首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Sails.js中为工具栏配置部分和布局?

如何在Sails.js中为工具栏配置部分和布局?
EN

Stack Overflow用户
提问于 2013-11-06 11:17:14
回答 7查看 15.8K关注 0票数 10

我运行0.9.7并安装了车把,这是Consolidate.js支持的,因此是由帆支撑

我可以从.handlebars文件中提供页面,它工作得很好。我不知道在什么地方,在帆的工作流程,和一个帆的方式,我应该注册部分,助手等.我更多的是寻找最佳实践,而不仅仅是一个有效的解决方案,但是任何帮助都将受到感谢。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-02-03 21:59:39

我运行的是0.10测试版,但这不会影响我如何让它在下面工作:

  1. 引擎应该是车把,如预期的
  2. 路由需要显式定义控制器和操作。设置视图不起作用。(除非有一种方法无法将路径文件中的部分设置出来)
  3. 控制器需要定义为相对于视图的路径的部分。

config/views.js

代码语言:javascript
复制
module.exports.views = {
  engine      : 'handlebars',
  layout      : false
};

config/routes.js

代码语言:javascript
复制
'/': {
  controller: 'site',
  action: 'index'
},

SiteController.js

代码语言:javascript
复制
module.exports = {
  // Render Index View
  index: function(req, res) {
    res.view({
      partials: {
        head: 'partials/head',
        tail: '../partials/tail',
      },
    });
  }
};

views/site/index.handlebars

代码语言:javascript
复制
{{> head}}
<h3>SITE INDEX</h3>

views/site/partials/head.handlebars

代码语言:javascript
复制
<h1>HEAD</h1>
{{> tail}}

views/partials/tail.handlebars

代码语言:javascript
复制
<h2>HEAD TAIL</h2>

输出

代码语言:javascript
复制
<h1>HEAD</h1>
<h2>HEAD TAIL</h2>
<h3>SITE INDEX</h3>
票数 8
EN

Stack Overflow用户

发布于 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 /

显然,这对您来说是完全正确的,因为您需要在控制器中手动指定每个部分。

票数 4
EN

Stack Overflow用户

发布于 2013-11-07 23:34:21

编辑:这是相当容易实现通过高速公路3把手模块,同时不改变任何默认的帆功能,除了要求你把你的布局文件到views/layouts。如果您愿意的话,我在这里打开了一个拉请求(https://github.com/balderdashy/sails/pull/1075)。

在对sails源代码进行了一些深入研究之后,在呈现视图时引入部分是相当容易的。

当您在控制器操作中调用res.view时,只需作为“局部变量”的一部分传入partials对象,其中包含您希望呈现的部分列表。

代码语言:javascript
复制
  // 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,同时保留一些外观布局的人来说,这应该足够了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19810671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档