我正在尝试进行两种方式的数据绑定,以便每当子级更改子级时,子级就可以更新父级中的属性(file
。
父中的值永远是未定义的。我在做什么错?
在子组件(<cb-drag-and-drop-file>
):]中>
@Output() public fileChange = new EventEmitter<File>(); private fileValue: File; @Input() get file() { return this.fileValue; } set file(value) { this.fileValue = value; } private setDocument(uploadedFile: File): void { if (this.isFilesizeValid && this.isFileExtensionValid) { this.file = uploadedFile; this.fileChange.emit(uploadedFile); this.isFileValidAndUploaded = true; } } private clearOldFileReference(): void { this.file = undefined; this.fileChange.emit(undefined); }
在父组件ts文件中:
file; ngOnInit() { interval(1000).pipe(mapTo(this.file), tap(x => console.log(x))).subscribe(console.log); }
在父组件html文件中:
<cb-drag-and-drop-file fxFlex [allowedFileTypes]="[FILE_TYPE_ENUM.Xlsx]" [(file)]="file" description="faslkdfjlsdkjf"> </cb-drag-and-drop-file>
当然,我不必在父级中强制性地设置文件,这似乎不是被动的,这是我认为Angular想要使用事件发射器的目的?这也意味着我不能使用香蕉盒语法,不是吗?我已经向父级添加了
fileChange
,使用香蕉框语法时永远不会将其触发。
我正在尝试进行两种方式的数据绑定,以使子级可以在子级更改父级中的属性(文件)时对其进行更新。父级中的值永远是未定义的。我是什么...
<< [Template