Цель состоит в том, чтобы проанализировать наблюдаемый массив из 10 объектов, которые содержат HTML свойства привязки и pu sh их по одному объекту за раз (id, url, title), чтобы заполнить анимированный шаблон, затем следующий объект.
Я вытягиваю массив JSON (JSON .stringify ({results})) из функции AWS Lambda через AWS API Gateway через HTTPClient Angular.
Объект Array выглядит следующим образом:
```
{
results: [{id: any, url: 'string', title: 'string'}, {id: any, url: 'string', title:
'string'},...}]
}
The Template Looks Like This:
```
<div class="primary" #elmRef>
<div class="secondary" *ngFor="let anchor of (this.newsObj$ | async)" id="{{anchor.id}}">
<a href="{{anchor.url}}">{{anchor.title}}</a>
</div>
</div>
Схема / Модель / Интерфейс выглядит следующим образом:
export interface Nstream {
id: any;
title: string;
link: string;
}
Это служба API:
loadAllNews$(): Observable<Nstream[]> {
return this.http.get<Nstream[]>('https://example.com/stage/{proxy+}')
.pipe(
map(response => response['results']),
shareReplay());
}
Это компонент:
export class NewsStreamComponent implements OnInit, AfterViewInit {
private subject = new BehaviorSubject<Nstream[]>([]); // remembers the last array obj it emitted
newsObjs$ = this.subject.asObservable();
@ViewChild('elmRef', {static: false}) elmRef;
constructor(private api: ApiService) { }
obj$: Observable<any>;
// onAnimationStart(event) {---TBD---}
// onAnimationEnd(event) {---TBD---}
ngOnInit() {
this.newsObjs$ = this.api.loadAllNews$()
.pipe(
map((response) => response));
}
// This is where I left off
ngAfterViewInit() {
this.obj$ = this.newObjs$.pipe(
switchMap(response => response),
map(values => values),
take(1));
}
// this.obj$.subscribe(v => console.log('first instance of endpoint from object obj$: ', v));
}
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: меня больше всего волнует, как итерировать и заполнять шаблон в данный момент. Я расскажу об анимации позже, так как предоставил ее только для обеспечения некоторого контекста.
В настоящее время: я могу заполнить шаблон, однако, только внутри функции ngOnInit и со всеми 10 объектами, сложенными друг на друга что я и хочу (думаю). Я выбрал этот подход, предполагая, что смогу перебирать идентификаторы объектов, всплывать и использовать его для переключения ngIf в шаблоне, таким образом показывая только шаблон с соответствующими идентификаторами в ngAfterViewInit (). После нескольких часов попыток поиска я бросаю полотенце и ищу помощи. Заранее благодарю за любую помощь, которую вы можете оказать.