过去,您可以使用Angular Universal中的isBrowser
来检查您的网页是否在浏览器中呈现(因此您可以使用localStorage之类的内容),或者是否正在进行服务器端预呈现。
但似乎angular2-universal
已解散为@angular/core
,@angular/platform-server
和@angular/platform-browser
。
我在Angular 4的API文档中寻找类似的功能,并尝试在源代码的某处找到它,但没有运气。
我是否遗漏了某些东西,或者Angular 4检查渲染是否在浏览器中运行的方式是什么?或者我应该只检查是否定义了window
?
答案 0 :(得分:9)
import { PLATFORM_ID, Inject } from '@angular/core';
import { isPlatformBrowser} from '@angular/common';
...
export class MyComponent {
...
testBrowser: boolean;
constructor(
@Inject(PLATFORM_ID) platformId: string) {
this.testBrowser = isPlatformBrowser(platformId);
if (this.testBrowser) {
//this is only executed on the browser
}
}
...
答案 1 :(得分:0)
您可以导入isPlatformBrowser(<platform id>)
:
import { isPlatformBrowser } from '@angular/common';
这将允许您检查它是否在浏览器中呈现。
注意,isPlatformServer
中也有@angular/common
。