首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将Observable返回的对象作为输入组件Angular 5传递

无法将Observable返回的对象作为输入组件Angular 5传递
EN

Stack Overflow用户
提问于 2018-01-19 23:30:45
回答 1查看 478关注 0票数 2

我有一个小组件,其中我只有一个输入

Ts组件代码

代码语言:javascript
复制
 @Input() variables;

      ngOnInit() {
        console.log(this.variables);
    }

在哪里使用我的组件TS

代码语言:javascript
复制
envVars$: Observable<{
            names: String[],
            values: {}
          }>;

在哪里使用我的组件HTML

代码语言:javascript
复制
 <app-code  [variables]="(envVars$ | async)?.values | json"></app-code>

在控制台日志中,虽然我的对象已满,但仍为NULL

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-20 00:25:53

日志显示为null,因为您在异步定义对象之前登录了INIT。异步管道完全按照预期工作。如果你需要在init上定义对象,那么你需要稍微改变一下你的结构。

相反,这样做是为了确保在组件实例化之前填充可观察对象:

代码语言:javascript
复制
<app-code *ngIf="envVars$ | async as enVars" [variables]="envVars.values | json"></app-code>

这里的ngIf告诉angular在envVars$发出一个值之前不要实例化组件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48344458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档