在过去,您可以使用Angular Universal的isBrowser来检查您的页面是否在浏览器中呈现(因此您可以使用localStorage之类的东西),或者它是否正在进行服务器端预呈现。
但angular2-universal似乎被分成了@angular/core,@angular/platform-server和@angular/platform-browser。
我在Angular 4的API文档中寻找过类似的功能,也试图在源代码中找到它,但没有成功。
我是否遗漏了什么,或者Angular 4检查渲染是否在浏览器中运行的方法是什么?或者我应该只是简单地检查是否定义了window?
发布于 2017-10-23 23:47:22
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
}
}
...发布于 2017-09-08 02:08:25
您可以按如下方式导入isPlatformBrowser(<platform id>):
import { isPlatformBrowser } from '@angular/common';这将允许您检查它是否在浏览器中呈现。
需要注意的是,@angular/common中也有一个isPlatformServer。
https://stackoverflow.com/questions/46099644
复制相似问题