首頁  >  文章  >  php教程  >  基於 Koa平台Node.js開發的KoaHub.js的範本引擎程式碼

基於 Koa平台Node.js開發的KoaHub.js的範本引擎程式碼

WBOY
WBOY原創
2016-09-30 09:22:561183瀏覽

基於 Koa平台Node.js開發的KoaHub.js的範本引擎程式碼
koahub-車把

koahub-車把

koahub 把手模板

安裝

$ npm 安裝 koahub-handlebars
與 koa 一起使用

var koa = require('koa');
var hbs = require('koahub-handlebars');

var app = koa();

// koahub-handlebars 是中間件。在渲染視圖之前「使用」它
應用程式.use(hbs.middleware({
viewPath: __dirname + '/views'
}));

// 渲染附加到 koa 上下文。在中間件中呼叫 `this.render`
// 將渲染的 html 附加到 koa 回應主體。
app.use(函數 *() {
yield this.render('index', {title: 'koahub-handlebars'});
})

應用程式.聽(3000);

註冊助理

使用 #registerHelper 方法註冊助手。這是使用預設實例的範例(從官方 Handlebars 文件中竊取的幫助程式:

hbs = require('koahub-handlebars');

hbs.registerHelper('連結', 函數(文本, url) {
文字 = hbs.Utils.escapeExpression(text);
url = hbs.Utils.escapeExpression(url);

var result = '' + 文字 + '';

返回新的 hbs.SafeString(結果);
});
然後,您可以使用 {{link "Google" "http://google.com"}} 在所有視圖中存取您的助理

registerHelper、Utils 和 SafeString 方法都代理到內部 Handlebars 實例。如果將 Handlebars 的替代實例傳遞給中間件配置器,請確保在透過上述函數的 koahub-handlebars 代理註冊助手之前執行此操作,或直接透過 Handlebars 實例註冊助手。

您也可以在助手中存取目前的 Koa 上下文。如果您想要一個輸出目前 URL 的助手,您可以編寫如下所示的助手,並在任何範本中將其呼叫為 {{requestURL}}。

hbs.registerHelper('requestURL', function() {
var url = hbs.templateOptions.data.koa.request.url;
返回網址;
});
註冊部分

註冊partials的簡單方法是將它們全部放在一個目錄中,並在產生中間件時傳遞partialsPath選項。假設您的視圖位於 ./views 中,而您的部分視圖位於 ./views/partials 中。透過
配置中間件
應用程式.use(hbs.middleware({
viewPath: __dirname + '/views',
部分路徑:__dirname + '/views/partials'
}));
將使它們自動註冊。或者,您可以透過呼叫 hbs.registerPartial 一次註冊一個部分,它代理快取的句柄 #registerPartial 方法。

版面

傳遞帶有佈局名稱的 defaultLayout 將導致所有模板插入到佈局的 {{{body}}} 表達式中。這可能如下所示。




{{標題}}標題>
頭>

{{{身體}}}
身體>

除此之外,或者作為替代,您可以指定一個佈局來呈現模板。只需指定 {{!
目前,僅支援單一內容塊 ({{{body}}})。

選項

koahub-handlebars 的計劃是提供與 koa-hbs 相同的功能(最終)。現在支援這些選項。

viewPath: [必需] 載入模板的完整路徑 (Array|String)
handbars: 傳遞你自己的handlebars實例
templateOptions:傳遞給 template() 的車把選項的雜湊值
extname:更改預設模板副檔名(預設:'.html')
partialsPath:partials目錄的完整路徑(陣列|字串)
defaultLayout: 預設佈局的名稱
layoutsPath:佈局目錄的完整路徑(字串)
disableCache:停用範本快取(預設值:'.true')
當地人

應用程式局部變數([this.state](https://github.com/koajs/koa/blob/master/docs/api/context.md#ctxstate))提供給應用程式中渲染的所有範本。

app.use(函數 *(下一個) {
this.state.title = '我的應用程式';
this.state.email = 'me@myapp.com';
接下來產生;
});
狀態物件是一個 JavaScript 物件。新增到其中的屬性將在您的視圖中公開為局部變數。

{{標題}}標題>

聯絡方式:{{email}}


謝謝

相思木 hbs

不同之處

設定檔增量更改
修改部分功能和預設配置
...
官網:http://js.koahub.com
基於 Koa平台Node.js開發的KoaHub.js的範本引擎程式碼

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn