簡體   English   中英

sails.js應用程序中的車把布局和局部

[英]handlebars layouts and partials in a sails.js application

我正在使用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中的錯誤嗎? 還是我做錯了什么?

這不是錯誤。 它實際上是設計使然。

在Express 3中,已棄用了對布局/部分的內置支持。 相反,期望開發人員自己依靠視圖引擎來實現此功能。 (有關更多信息,請參見https://github.com/balderdashy/sails/issues/494 。)

自從采用Express 3以來,Sails選擇了支持舊版布局功能的目的是方便,與Express 2.x和Sails 0.8.x應用程序向后兼容,尤其是讓其他MVC框架的新社區成員熟悉。 結果,僅使用默認視圖引擎(ejs)對布局進行了測試。

如果布局不是您的事,或者(暫時)是使用ejs以外的服務器端視圖引擎(例如Jade,車把,haml,dust),則需要在航行中設置layout:false。 config.views,然后依靠您的視圖引擎的自定義布局/部分支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM