Надеюсь, вы понимаете это правильно.
Я создал специальную директиву ngForIn для получения ключей объекта.Это правильно работает со следующим кодом:
import {Directive, Input, OnChanges, SimpleChange, SimpleChanges} from "@angular/core";
import {NgForOf} from "@angular/common";
@Directive({
selector: "[ngFor][ngForIn]"
})
export class NgforinDirective<T> extends NgForOf<T> implements OnChanges {
@Input() public ngForIn: any;
public ngOnChanges(changes: SimpleChanges): void {
if (changes.ngForIn) {
if (this.ngForIn) {
this.ngForOf = Object.keys(this.ngForIn) as Array<any>;
const change = changes.ngForIn;
const currentValue = Object.keys(change.currentValue);
const previousValue = change.previousValue ? Object.keys(change.previousValue) : undefined;
changes.ngForOf = new SimpleChange(previousValue, currentValue, change.firstChange);
}
super.ngOnChanges(changes);
}
}
}
Проблема, с которой я сталкиваюсь сейчас, заключается в том, что мне нужно иметь доступ к значению объекта [ключ] несколько раз в шаблоне.На данный момент я работаю с этим вот так (грязно):
<div *ngFor="let key in object">
{{object[key]}}
Однако я хотел бы иметь возможность сделать что-то вроде этого:
<div *ngFor="let key in object; let value = object[key]">
{{value}}
У меня естьчтение исходного кода для ngForOf , поскольку он включает в себя некоторые локальные переменные как "index" или "odd".
Я думаю, что решением было бы создание локальной переменной в пользовательской директиве, которая бывернуть значение объекта [ключ], который повторяется в тот момент, но я не совсем понимаю, как мне это сделать;или, может быть, есть более простое решение, о котором я не знаю.
Кто-нибудь сталкивался с подобной проблемой и нашел решение?
Спасибо!