簡體   English   中英

如何使用 Handlebars.js 在 nest.js 中設置默認布局?

[英]How to set up a default layout in nest.js using Handlebars.js?

我剛開始使用 nest.js,之前對 node 和 express 有一些經驗。

我正在嘗試為我的部分和響應呈現設置默認布局。 這是我的main.ts

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as hbs from 'hbs';

async function bootstrap() {
    const app = await NestFactory.create(AppModule);

    app.setBaseViewsDir(__dirname + '/views');
    hbs.registerPartials(__dirname + '/views/partials');
    app.setViewEngine('hbs');

    await app.listen(3000);
}
bootstrap();

我有一種感覺,應該在該代碼的某處定義一個默認布局,但我不知道如何繼續。 我的 Google-fu 失敗了,所以有人可以幫我嗎?

您可以使用

app.set('view options', { layout: 'index' });

您仍然需要在所有控制器上使用@Render('valid-layout')並且提供的布局名稱必須有效。 它只會被您的默認布局覆蓋。

這適用於 NestExpressApplication:

進口車把:

import * as hbs from 'hbs';
import { join } from 'path';

將 hbs 設置為 viewEngine a

app.setBaseViewsDir(join(__dirname, '..', 'views'));
app.setViewEngine('hbs');
hbs.registerPartials(join(__dirname, '..', '/views/partials'));

還與助手一起工作:

hbs.handlebars.helpers = {
...require('handlebars-helpers')()
};

暫無
暫無

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

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