如何在Angular 4中检查isBrowser

时间:2017-09-07 15:02:30

标签: javascript angular typescript

过去,您可以使用Angular Universal中的isBrowser来检查您的网页是否在浏览器中呈现(因此您可以使用localStorage之类的内容),或者是否正在进行服务器端预呈现。

但似乎angular2-universal已解散为@angular/core@angular/platform-server@angular/platform-browser

我在Angular 4的API文档中寻找类似的功能,并尝试在源代码的某处找到它,但没有运气。

我是否遗漏了某些东西,或者Angular 4检查渲染是否在浏览器中运行的方式是什么?或者我应该只检查是否定义了window

2 个答案:

答案 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