重新使用Angular 2表单组件

时间:2016-04-18 04:51:33

标签: angular forms typescript code-reuse

我目前正在开发一个 Angular 项目,并希望能够将

创建和更新重用我的表单组件实体。

例如,我在远程API上有一个用户实体,我在前端有一个表单,允许我创建这些用户, POST 输入到服务器。这很棒!

尝试使用相同的表单进行更新时,问题就开始了。我需要通过发出 GET 请求来填写表单输入字段和来自远程服务器的存储信息。问题是表单组件在 REST 请求 Observable 响应用户实体之前加载。

如何在表单完全加载之前用远程服务器中的信息填写表单?

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用ngIf

@Component({
  selector: 'xxx',
  template: `
<form *ngIf="model">
  ...
</form>

<!-- optional -->
<my-spinner *ngIf="!model"></my-spinner>
`})
export class MyComponent {
  constructor(private myService:MyService) {
    this.myService.getData.subscribe(data => this.model = data);
  }
}

然后*ngIfthis.model = data执行后立即将表单添加到DOM中。