Angular Universal Reload两次

时间:2017-10-03 03:58:01

标签: angular angular-universal

Angular Universal App为初始代码重新加载内容两次,如何防止这种情况?

我把我的初始代码放在ngOnInit()中仍然得到相同的结果。

2 个答案:

答案 0 :(得分:0)

Angular Universal首先在服务器端预呈现项目的js,然后一旦呈现dom,它就会切换到客户端,而不管获取的数据如何。确保在获得数据或API后再也不要再调用它们。这应该有助于阻止第二次重装。

答案 1 :(得分:0)

例如,如果您希望仅在服务器端运行查询或代码,而不是在前端,而不是两次",您可以检查平台以查看代码的位置待执行

import {Injectable, PLATFORM_ID} from '@angular/core';
import {isPlatformServer} from '@angular/common';

@Injectable()
export class Something {

  constructor(@Inject(PLATFORM_ID) private platformId: Object) {
  }

  getSomething() {
    if (isPlatformServer(this.platformId)) {
      // Here we execute the code on the server side only
    } else {
      // Here we execute the code on the browser side only
    }
  }
}