Я сомневаюсь, что когда я вызываю функцию внутри * ngFor, она выполняется несколько раз, на число больше, чем элементы в массиве tabsName .Вот код ниже:
<mat-tab-group>
<mat-tab *ngFor="let tab of tabsName">
<ng-template mat-tab-label>
{{getTabName(tab)}}
<span class="badge">{{getTabCount(tab)}}</span>
</ng-template>
<div *ngTemplateOutlet="comments"></div>
</mat-tab>
</mat-tab-group>
<ng-template #comments>
<div class="col-sm-9 jj-pad-0">Deep</div>
</ng-template>
После реализации всех хуков жизненного цикла компонента узнал, что некоторые методы хуков жизненного цикла вызываются снова и снова.
Я хотел знать, это правильное поведение или нет?
Свойства tabsName - это имя и количество.Имя и счет, которые я получаю от службы, выполняющей вызов покоя.
tabsName: [{name: 'tab1', count: '2'}, {name: 'tab2', count: '1'}]
Ниже приведен файл ts.
export class TabsComponent implements OnInit {
@Input() tabsName: any;
@Input() template: TemplateRef<any>;
@Output() tabSelected: EventEmitter<any> = new EventEmitter();
constructor(private service: SomeService) {
}
getTabName(tab): string {
return this.service.configData[tab]['UILabel'];
}
getTabCount(tab): number {
if (this.service.dataMap) {
return this.service.dataMap.get(this.service.configData[tab]['dataType']).data.length;
}
}
onSelect(event) {
this.tabSelected.emit(event);
}
}