您可以捕获并处理抽象类中的发射器吗?

时间:2019-03-25 19:41:22

标签: angular

首先,我承认我在角度方面还很新。我已经搜索过此内容,却没有发现任何有用的信息。现在,我只是在寻找是否正在树错树丛中,或者是否缺少有关如何处理发射器的信息。

我有一系列应用程序组件,它们都从抽象的基本组件“ ApplicationComponent”继承。每个子组件包含(除其他组件外)嵌套的摘要组件。摘要组件具有多个嵌套组件,每个嵌套组件都有一个编辑按钮,该按钮发出页面更改请求直至摘要父级。从那里,我需要将页面更改请求发送到父应用程序。我要解决的问题是,我是否可以处理基本组件中的发射器,而不用为每个Application实例重复代码?

  1. BaseApplicationComponent
    • ActualAppComponent(继承)
      • SummaryComponent(嵌套)
        • SummarySectionComponent(嵌套)

这是基本组成部分:

@Component({
  selector: 'base-application',
  templateUrl: './application.component.html',
  styleUrls: ['./application.component.css']
})
export abstract class ApplicationComponent extends CertificationComponent implements OnInit {

  protected AppType: AppType;
  protected AppId: string;
  protected CurrentPage: number;
  constructor(private AppAlertServ: AlertService, 
              private AppServ: ApplicationService, 
              private AppCertServ: CertificationService, 
              private AppCertId: string, 
              private AppTypeId: string) { 
    super(AppAlertServ, AppCertServ, AppCertId);
    this.AppType.Id = AppTypeId;
    this.CurrentPage = 1;
  }

  ngOnInit() {
    super.ngOnInit();
    this.AppServ.Read(this.AppType.Id).subscribe(
      (AppNext: AppType) => {
        this.AppType = AppNext;
      }, 
      AppError => { 
        this.AppAlertServ.error(AppError);
      }
    )
  }

  // Here is where I'd like to handle the emitter
  public OnPageChange(NewPageNumber: number) {
    this.CurrentPage = NewPageNumber;
  }
}

这个问题是我不知道如何捕获发射器,因为实际上并未创建此抽象类。我可以参考实例化的子模板吗?

另一件事,我正在研究的解决方案不是直接路由问题。由于不是每个应用程序都具有相同的组件列表,并且顺序可以更改,因此CurrentPage更具ID性,因此我要说“无论在编辑配置中打开了第5页是什么”。

0 个答案:

没有答案