如何捕获子组件控制器类中的@输入()参数。我试图通过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/

10-12 06:13