如何捕获子组件控制器类中的@输入()参数。我试图通过constructor和oninit生命周期事件来控制日志,但它是未定义的。但是id通过单向绑定正确地显示在子组件html上
我需要参数信息来在子组件中编写一些自定义逻辑。
父.component.ts
@Component({
selector: 'app-parent',
templateUrl: './parent.component.html'
})
export class ParentComponent implements OnInit {
parameter : any = [1 ,2, 3] ;
}
子组件.ts
@Component({
selector: 'app-child',
templateUrl: './child.component.html'
})
export class ChildComponent implements OnInit {
@Input() parameter : any ;
Constructor() {
console.log(this.parameter) // prints undefined
}
ngOnInit() {
console.log(this.parameter) // prints undefined
}
}
父.component.html
<app-child [parameter]='parameter' ></app-child>
child.component.html子组件
{{ parameter }} // prints [1 ,2, 3]
最佳答案
如果您在代码的这个插入中看到,您将看到只有constructor
输出未定义,而ngOnInit
输出数组[1, 2, 3]
这是一个正在工作的掠夺者https://embed.plnkr.co/szRxO7b94r1o15vLbLbl/
更新以供评论
plunker现在使用一个服务和一个测试api,它在父和子上都工作得很好。使用ngonchanges,以便在返回响应后可以处理它。你应该像@günter zóchbauer在他的回答中提到的那样阅读lifecycle hooks。
关于angular - 如何在子组件 Controller 类中捕获@input参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41092540/