Angular 角度方法中嵌套的可重用对象

Angular 角度方法中嵌套的可重用对象,angular,typescript,Angular,Typescript,我有一个简单的列表,我想让我的代码工作,而不必三次更新admin2对象(我想只使用admin2一次,我需要admin2等于(属性)admin2组件。admin2:IAdmin2: 换句话说,我需要使用不同的分页项目pagination:IPaginationResponse、consultantPagination:IPaginationResponse、时事通讯pagination:IPaginationResponse更新此admin2 private updateList( pro

我有一个简单的列表,我想让我的代码工作,而不必三次更新
admin2
对象(我想只使用
admin2
一次,我需要
admin2
等于(属性)
admin2组件。admin2:IAdmin2


换句话说,我需要使用不同的分页项目pagination:IPaginationResponse、consultantPagination:IPaginationResponse、时事通讯pagination:IPaginationResponse更新此admin2

private updateList(
    projectPagination: IPaginationResponse <IProject>,
    consultantPagination: IPaginationResponse <IConsultant>,
    newsletterPagination: IPaginationResponse <INewsletter>
) {
    this.admin2 = projectPagination.data;
    this.pagination.total = projectPagination.meta.pagination.total;
    this.pagination.page = projectPagination.meta.pagination.current_page;

    this.admin2 = consultantPagination.data;
    this.pagination.total = consultantPagination.meta.pagination.total;
    this.pagination.page = consultantPagination.meta.pagination.current_page;

    this.admin2 = newsletterPagination.data;
    this.pagination.total = newsletterPagination.meta.pagination.total;
    this.pagination.page = newsletterPagination.meta.pagination.current_page;
}

根据我的理解,您有3组不同的分页值,您需要引用组件中的所有3组。但您所做的是将一组类属性逐个重新分配给所有3个值。这不会给您提供所需的结果,因为您的类属性始终等于最后一次分配。

再创建两组类属性,因此应该从以下内容开始:

class MyClass {
    admin2: any;
    pagination: any;

    // ...
}
对于这样的事情(给他们更好的名字,我只是按照你的命名惯例):


确保首先实例化类属性,否则它们都将
未定义
,因此执行类似于
的操作。pagination.foo
将给您一个“无法访问
foo
的未定义”错误。

请添加更多信息,您的问题很模糊。预期的输出是什么?您收到的是什么?为什么您要重新分配3次,而不是只使用第3组值并只分配一次?我们需要更多的详细信息以提供帮助。@Lansana稍后在代码中,我将在更新代码时添加$onInit方法我需要此admin2等于(属性)Admin2Component.admin2:iadmin2您能解释一下为什么要一个接一个地更新值3次吗?这对我来说没有任何意义。您将始终获得上次更新的值,所以为什么不删除前2次并使用最后一组值进行更新呢?最后一组值将始终覆盖前2次更新。(这并不能解决您的问题,我只是不明白您为什么要这样做)。我需要使用不同的分页项目pagination:IPaginationResponse、consultantPagination:IPaginationResponse、NewslettePagination:IPaginationResponse更新此admin2
class MyClass {
    admin2: any;
    pagination: any;

    // ...
}
class MyClass {
    admin: IProject;
    pagination: IPaginationResponse<IProject>;

    admin2: IConsultant;
    pagination2: IPaginationResponse<IConsultant>;

    admin3: INewsletter;
    pagination3: IPaginationResponse<INewsletter>;

    // ...
}
private updateList(
    projectPagination: IPaginationResponse <IProject>,
    consultantPagination: IPaginationResponse <IConsultant>,
    newsletterPagination: IPaginationResponse <INewsletter>
) {
    this.admin = projectPagination.data;
    this.pagination.total = projectPagination.meta.pagination.total;
    this.pagination.page = projectPagination.meta.pagination.current_page;

    this.admin2 = consultantPagination.data;
    this.pagination2.total = consultantPagination.meta.pagination.total;
    this.pagination2.page = consultantPagination.meta.pagination.current_page;

    this.admin3 = newsletterPagination.data;
    this.pagination3.total = newsletterPagination.meta.pagination.total;
    this.pagination3.page = newsletterPagination.meta.pagination.current_page;
}