【问题标题】:Angular 2 bootstrap processAngular 2 引导过程
【发布时间】:2016-05-20 09:42:40
【问题描述】:

我想在调用 Angular 2 中的引导方法以在页面加载时引导应用程序之前发出 AJAX 请求。

有没有我可以使用 Angular 来监听的钩子?我知道我可以将它包装在一个普通的 javascript ajax 请求中,但我认为可能有一种使用 Angular 2 执行此操作的标准方法。在启动 Angular 2 应用程序之前,我需要从服务器获取配置文件。

【问题讨论】:

  • 你要这个的目的是什么?您不希望 Angular 显示任何内容吗?如果 Angular 可以在浏览器空闲并等待服务器响应时进行自我初始化,这样会更有效率。
  • 一个类似的问题和一个反复提到的stackoverflow.com/questions/34731869/…。
  • 我有一个从服务器返回的配置对象。该对象包含功能标志,例如告诉组件它们应该显示和隐藏什么。在第一页加载时,我希望在组件开始加载之前进行此配置。目前,如果我在 App 组件中执行此操作为时已晚,但我仍在研究它。
  • 你可以用一个大的ngIf 包裹你的AppComponent 的模板内容,当配置到达时切换绑定标志。
  • 谢谢,我喜欢。这应该可以解决它,尽管我希望某种类型的基于 Angular 的选项可以做到这一点。我现在就这样做。

标签: angular angular2-routing angular2-template angular2-services


【解决方案1】:

据我所知,Angular 没有为此用例提供特殊的钩子。
一个简单的“解决方法”是只用ngIf 包装根组件模板的内容:

@Component({
  selector: 'my-app',
  template: `
<div *ngIf="_config">
  ...
</div>`
...
)}
export class MyApp {
  private _config;
  constructor(configService:ConfigService) {
    configService.change.subscribe(value) => {
      this.config = value;
    });
  }
}

【讨论】:

    猜你喜欢
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2018-02-14
    相关资源
    最近更新 更多