В моем шаблоне я использую какой-то сторонний компонент, который рендерит степпер, где вы можете перемещаться между шагами:
<my-stepper step="{{ currentStep }}" steps-label="steps"
[stepChangeCallback]="stepChangeCallback">
<my-stepper-step>First</my-stepper-step>
<my-stepper-step>First</my-stepper-step>
<my-stepper-step>First</my-stepper-step>
</my-stepper>
и
export class HeaderComponent implements OnInit {
currentStep = 0;
stepChangeCallback(selectedStep) {
this.currentStep = selectedStep; // PROBLEM: this does not point to HeaderComponent
}
}
Так что я подумал, что мог бы просто сгенерировать новую функцию с фиксированным указателем:
getStepChangeCallbackFunction() {
return this.stepChangeCallback.bind(this);
}
и
[stepChangeCallback]="getStepChangeCallbackFunction()"
Это работает, однако, я вижу, что потребление памяти постоянно растет и что веб-сайт в конечном итоге приведет к сбою браузера, поскольку он постоянно генерирует новые копии функций.
Есть ли другое решение?