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;
}