javascript - 如何在 Angular 4 中检查 isBrowser

标签 javascript angular typescript

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

但似乎angular2-universal被分解成了@angular/core@angular/platform-server@ Angular/平台浏览器

我在 Angular 4 的 API 文档中寻找过类似的功能,也试图在源代码的某个地方找到它,但没有成功。

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

最佳答案

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
            }
    }
...

关于javascript - 如何在 Angular 4 中检查 isBrowser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46099644/

相关文章:

javascript - 某些东西破坏了我在 IE 中的网站

javascript - 即使用户已登录,环回也会抛出 accessToken undefined

Angular:如何使用导航方法从父组件导航到子路由

angular - 找不到 'AppModule' 的 NgModule 元数据

javascript - 联合类型 js 的 Typescript 定义

javascript - 隐藏的 Tailwind 移动设备无法正常工作

javascript - 在 IE7|8 中用特殊替换模式替换字符串的奇怪行为

javascript - 发送 JSON 对象。如何设置简单的 .net Controller 方法来接收此类型?

angular - Ionic2 - 每当我使用 navCtrl 推送新页面/组件时,选项卡就会消失

typescript - 使用 TypeScript 和 Ember 编写计算属性的正确方法是什么?