【发布时间】:2021-09-27 13:42:29
【问题描述】:
如何更改在拦截器中传递给@Render 装饰器的模板名称?我需要根据用户的语言将所需的语言环境添加到模板 url。我正在尝试这样做,但它不起作用。我该怎么做?
@Injectable()
export class RenderByLanguageInterceptor implements NestInterceptor {
constructor(private reflector: Reflector) {}
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
const template = this.reflector.getAllAndOverride<string>(RENDER_METADATA, [
context.getHandler(),
context.getClass(),
]);
const lang = context.switchToHttp().getRequest().i18nLang;
SetMetadata(RENDER_METADATA, `${lang}/${template}`);
return next.handle();
}
}
【问题讨论】:
标签: javascript nestjs nestjs-i18n