sails.js应用程序中的把手布局和部分

时间:2014-03-24 23:54:48

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

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

我的config / views.js文件是:

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

这很好用,加载了布局。问题是当我尝试使用partials时,我收到一条错误消息,指出找不到partial。

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

如果布局不是你的东西,或者(现在)如果你使用的是ejs以外的服务器端视图引擎(例如Jade,把手,haml,灰尘),你需要设置布局:false在sails.config.views中,然后依赖于视图引擎的自定义布局/部分支持。