【问题标题】:Angular set html lang atttribute in SSR buildSSR构建中的角度设置html lang属性
【发布时间】:2018-10-11 11:36:45
【问题描述】:
如何设置html lang 属性,例如<html lang="en"> 在服务器端呈现的 html 中?
在客户端我可以订阅onLangChange并在下面的代码中设置属性,但是如何访问服务器端的html元素?
this.renderer.setAttribute(document.body.parentNode, "lang", lang.toLowerCase());
【问题讨论】:
标签:
angular
server-side-rendering
angular-universal
ngx-translate
【解决方案1】:
到目前为止,我最终得到了这个解决方案:
在main.server.ts 中,我编辑了createServerRenderer() 方法来拦截返回为字符串的html,并将<html 替换为<html lang="xx"。在我的情况下,每个语言都映射到单独的域,所以我按域确定当前语言
let promise = renderPromise.then(html => {
return { html: html.replace("<html", `<html lang="${currentLanguage}"`) };
});