我有一个应用,我有一个上传组件,我可以上传一个文件.它被嵌入到了body.component.

在上传时,它应该使用父组件的一个函数(例如BodyComponent.thefunction())(调用以更新数据):但前提是它的父组件是body.component.上传也可能在其他地方使用不同的行为.

大概parent(this).thefunction()左右,怎么做呢?

推荐答案

我将在子组件中创建一个自定义事件.比如:

@Component({
  selector: 'child-comp',
  (...)
})
export class ChildComponent {
  @Output()
  uploaded = new EventEmitter<string>();

  uploadComplete() {
    this.uploaded.emit('complete');
  }

您的父组件可以在此事件上注册

@Component({
  template `
    <child-comp (uploaded)="someMethod($event)"></child-comp>
  `,
  directives: [ ChildComponent ]
})
export class ParentComponent {
  (...)

  someMethod(event) {
  }
}

另一种方法是将父组件注入子组件,但它们将紧密链接在一起……

Angular相关问答推荐

将kendo—colorpicker的kendo弹出窗口附加到组件''

带有两个注入服务的函数式解析器(Angular 15)

如何使用ChangeDetectionStrategy.OnPush?

HTTP POST响应失败Angular 16

Angular 应用程序未在Azure应用程序服务中运行

如果Rxjs间隔请求仍在进行,则不应重置,但如果用户更改输入,则应重置

为什么动画只触发一次?

当包含react 性模板绑定时,NG-Bootstrap手风琴不会打开

Angular 16模块中未使用的组件是否从Bundle 包中删除(树摇动)?

找不到模块webpack dev服务器

自定义垫日历中选定的日期(Angular material )

ng 生成组件不会创建 ngOnInit 和构造函数

模块内的命名路由出口 - 路径匹配但内容未加载

Angular 重新渲染仅使用ngrx在表中更改的行

ng14中具有强类型表单的FormBuilder

为什么 HttpParams 在 Angular 4.3 中的多行中不起作用

如何在对话框angular material内对齐按钮?

使用 Jasmine 和 Karma 对 Angular 进行单元测试,错误:无法绑定到xxx,因为它不是xxxxxx的已知属性.

ConnectionBackend 没有提供程序

如何处理Angular2中的查询参数