Angular 2:在子组件

时间:2016-10-24 13:35:14

标签: angular angular2-routing angular2-components

我有一个组件,使用路由器级别的解析器在成功解决数据时加载(路由)。从服务器检索的数据将传递给子组件。数据被解析并相应地传递,但子组件抛出错误

  

尝试从未定义的

进行访问

场景:

父组件HTML:

 <parent>
   <child [_data]="dataFromResolver"></child>
 </parent>

Parent Component.ts

export class Parent implements OnInit {

    dataFromResolver: any;

    constructor(private route: ActivatedRoute) {
    }

    ngOnInit() {
        this.route.data.forEach((data: any) => {
          this.dataFromResolver = data;
        });
    }
}

解析器服务:

resolve(route: ActivatedRouteSnapshot): Observable<boolean | any> {
    return this.parentService.getData().map(output => {
        if (output) {
            return output;
        } else {
            this.router.navigate(['/login']);
            return false;
        }
    });
}

Child Compnent.ts

@Input() _data(value: any) {
        this.data = value;
    }


    data: any;

子组件HTML

<p>{{data.name}}</p>

还相应地配置了路由,我可以看到浏览器工具的网络选项卡中的数据。

如果我遗失了什么,请告诉我。

1 个答案:

答案 0 :(得分:0)

set之后发现错过@Input()的错误。一个大错的错误。