2014-03-24 58 views
1

我正在開發一個帶有sails.js v0.10的Web應用程序,並且我正在使用車把模板,我想使用佈局和局部部件。我發現sails.js使用express3句柄來提供句柄佈局和部分。但我不能同時使用兩者。sails.js應用程序中的車把佈局和局部部件

我的配置/ views.js文件是:

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

這工作完全,佈局被加載。問題是,當我嘗試使用partials時,出現錯誤,提示未找到部分。

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

這隻適用於將config/views.js佈局屬性的值更改爲false時。但是當我這樣做時,我無法再使用佈局。

這是sails.js中的錯誤嗎?或者,我做錯了什麼?

+0

可能的重複[如何配置Sails.js中Handlebars的局部和佈局?](http://stackoverflow.com/questions/19810671/how-to-configure-partials-and-layouts-for-handlebars- in-sails-js) – sgress454

+0

不完全重複,因爲鏈接的特定於Sails v0.9。用戶解釋的行爲不會在該版本中發生。 – ddelrio1986

回答

0

這不是一個錯誤。它實際上是通過設計。

在Express 3中,棄用了對佈局/部分的內置支持。相反,開發人員需要依靠視圖引擎來實現這些功能。 (關於該詳細信息參見https://github.com/balderdashy/sails/issues/494

自從採用快車3,帆已選擇支持遺留佈局功能爲方便起見,使用Express 2.x和帆0.8.4應用向後兼容性,並且特別地,熟悉對於來自其他MVC框架的新社區成員。因此,佈局只使用默認視圖引擎(ejs)進行測試。

如果佈局不是你的東西,或者(現在)如果你使用ejs以外的服務器端視圖引擎(例如Jade,handlebars,haml,dust),你需要設置佈局:在sails.config.views中爲false,然後依賴您的視圖引擎的自定義佈局/部分支持。