【问题标题】:handlebars layouts and partials in a sails.js applicationSails.js 应用程序中的把手布局和部分
【发布时间】:2014-03-24 23:54:47
【问题描述】:

我正在使用sails.js v0.10 开发一个Web 应用程序,并且我正在使用把手模板,我想使用布局和部分。我发现sails.js 使用express3-handlebars 来提供把手布局和部分。但我不能同时使用两者。

我的 config/views.js 文件是:

    ...
    engine: 'handlebars',
    layout: 'layouts/main.handlebars'
    ...

这很好用,布局已加载。问题是当我尝试使用部分时,我收到一条错误消息,指出未找到部分。

    //UserController.js
    ...
    index: function(req, res) {
        res.view({partials: {userlist: 'partials/userlist'}});
    ...

这仅在我将 config/views.js 布局属性的值更改为 false 时有效。但是当我这样做时,我不能再使用布局了。

它是sails.js 中的一个错误吗?或者,我做错了什么?

【问题讨论】:

标签: javascript node.js handlebars.js sails.js


【解决方案1】:

这不是错误。它实际上是设计使然。

在 Express 3 中,不推荐使用对布局/部分的内置支持。相反,开发人员应该依靠视图引擎自己来实现这些功能。 (有关更多信息,请参阅https://github.com/balderdashy/sails/issues/494。)

自从采用 Express 3 以来,Sails 选择支持旧版布局功能是为了方便、向后兼容 Express 2.x 和 Sails 0.8.x 应用程序,尤其是让来自其他 MVC 框架的新社区成员熟悉。因此,布局仅使用默认视图引擎 (ejs) 进行了测试。

如果你不喜欢布局,或者(目前)如果你使用的是除 ejs 之外的服务器端视图引擎(例如 Jade、车把、haml、灰尘),你会想要设置 layout:false在sails.config.views 中,然后依靠您的视图引擎的自定义布局/部分支持。

【讨论】:

    猜你喜欢
    • 2017-02-01
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多