Angular2异步调用值未定义

时间:2020-04-28 17:09:33

标签: angular typescript

我有下面的html和ts代码-当我调试打字稿代码时,我没有在参数中获取任何值,这是因为在传递值时未进行后端调用,因此它发送未定义的值。我该如何延迟html调用以获取值?

html文件:

   <button (click)="test()">
       <component [param]="param"></component>
   </button>

ts文件:

   @Input param: any;    
      test() {
        this.service.getData()
          .subscribe((val) => {
            this.param = val;
          });
    }

1 个答案:

答案 0 :(得分:0)

一种方法是在组件上放置*ngIf并仅在param变为真实时显示。

<button (click)="test()">
       <component *ngIf="!!param" [param]="param"></component>
</button>

另一种方法是传递默认值,直到param变为真为止;

<button (click)="test()">
       <component [param]="param ? param : 'hello world'"></component>
</button>

我们默认传递hello world,但您可以随意传递。