Angular 如何将值传递给子组件Anguar?
我有一个包含子组件的父组件:Angular 如何将值传递给子组件Anguar?,angular,Angular,我有一个包含子组件的父组件: <app-documents-mode-register [id_files]="getCheckedCheckboxesValues('id_file')"></app-documents-mode-register> 所以我尝试将[id\u files]传递给子组件,但我已经阅读了不推荐的将函数作为输入参数传递的方法。如何改进 app documents mode register组件具有onPush您可以这样定义
<app-documents-mode-register [id_files]="getCheckedCheckboxesValues('id_file')"></app-documents-mode-register>
所以我尝试将[id\u files]
传递给子组件,但我已经阅读了不推荐的将函数作为输入参数传递的方法。如何改进
app documents mode register
组件具有onPush
您可以这样定义管道
@Pipe({ name: 'checkedValues' })
export class CheckedValuesPipe implements PipeTransform {
transform(checkboxes: any, property: string): number[] {
return checkboxes.toArray().slice(1).filter((element: any) =>
element.value).map((element) => element.application[property]);
}
}
并使用模板中的管道
<app-documents-mode-register [id_files]="checkboxes | checkedValues : 'id_file'"></app-documents-mode-register>
请确保
复选框
是组件类中的公共成员。生成的数组是否会更改?对于你所读到的内容,你也可以在这里使用rad,例如:是的,生成的数组将被更改。我认为如果你使用管道而不是函数会更好?我只需要每次传递一组数字1。在父级中创建一个变量。2.使用已有的父方法设置变量。3.通过NgonChanges控制子对象中该变量的更改检测使用管道的好处是什么?和我的代码有什么区别?这是你问题的最佳答案。仅当输入值更改时才会调用管道,但每次检测到更改时都会调用方法。为什么不使用[id_文件]
?它不适用于meInside文档注销器
我有@input()id_文件:number[]=[]代码>因此,不会使用管道将值传递给子组件
<app-documents-mode-register [id_files]="checkboxes | checkedValues : 'id_file'"></app-documents-mode-register>