Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何将值传递给子组件Anguar?_Angular - Fatal编程技术网

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>