SSR构建中的角度设置html lang属性

时间:2018-10-11 11:36:46

标签: angular serverside-rendering angular-universal ngx-translate

如何设置html lang属性,例如服务器端渲染的HTML中的<html lang="en">? 在客户端上,我可以预订onLangChange并在下面的代码中设置属性,但是如何访问服务器端的html元素?

this.renderer.setAttribute(document.body.parentNode, "lang", lang.toLowerCase());

1 个答案:

答案 0 :(得分:0)

截至目前,我最终得到了以下解决方案:

main.server.ts中,我编辑了createServerRenderer()方法来拦截以字符串形式返回的html,而只是将<html替换为<html lang="xx"。在我的情况下,每个语言都映射到单独的域,所以我可以按域确定当前语言

let promise = renderPromise.then(html => {
    return { html: html.replace("<html", `<html lang="${currentLanguage}"`) };
});