我正在编写angular2 universal应用程序。它有一个d3图表,但我希望仅在客户端(浏览器)上呈现d3图表,而不尝试在服务器上呈现它。 angular2通用中是否存在仅在客户端运行组件方法的接口(interface)?

IE。

class ComponentWithChart implements OnInit, ngUniversalBrowser {

  elem;

  constructor( private viewContainerRef:ViewContainerRef) {}

  ngUniversalBrowserOnInit() {

    this.elem = this.viewContainerRef.element.nativeElement;

    d3.select(this.elem).append('div').style({
      'background-color':'yellow'
    });
  }
}

像上面的示例一样,是否有可能仅允许我在浏览器ngUniversalBrowser中运行OnInit方法?

最佳答案

import { isBrowser } from 'angular2-universal';

isBrowser是一个 bool 值,您可以将其导入组件中,然后仅在客户端上运行时才按条件执行代码。
if (isBrowser) {
     // this will not run on server
}

关于javascript - 我可以仅在使用Angular2 Universal的客户端中运行组件方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38549403/

10-09 20:51