Angular 角度插值语法:从所有子对象中计算所有子对象

Angular 角度插值语法:从所有子对象中计算所有子对象,angular,typescript,Angular,Typescript,我有以下课程: export class VrpInstance { routes: Array<Route>; } export class Route { points: Array<number>; } 如何使用插值语法实现这一点?您应该避免从模板中调用方法,因为每次运行更改检测时都会调用该方法。如果值可以更改,则应使用管道,因为它不会每次运行角度更改检测,而是仅在值更改时运行 将ArrayVRP实例作为参数的简单管道: @Pipe({name: 'ca

我有以下课程:

export class VrpInstance {
  routes: Array<Route>;
}

export class Route {
  points: Array<number>;
}

如何使用插值语法实现这一点?

您应该避免从模板中调用方法,因为每次运行更改检测时都会调用该方法。如果值可以更改,则应使用管道,因为它不会每次运行角度更改检测,而是仅在值更改时运行

将ArrayVRP实例作为参数的简单管道:

@Pipe({name: 'calculatePoint'})
export class CalculatePointPipe implements PipeTransform {
  transform(route: VrpInstance): number {
    const total = 0;
    route.routes.forEach((points: Array<number>) => {
        total += point.length;
    })
    return total;
  }
}

你不应该在html中这样做
@Pipe({name: 'calculatePoint'})
export class CalculatePointPipe implements PipeTransform {
  transform(route: VrpInstance): number {
    const total = 0;
    route.routes.forEach((points: Array<number>) => {
        total += point.length;
    })
    return total;
  }
}
{{ routes | calculatePoint }}