您好,亲爱的编码员, 我有一个项目,我必须将某些产品另存为“最喜欢的组件”部分中的“收藏夹”,我必须将它们保存到服务中,然后从该特定组件中调用它,任何人都可以帮助您实时,异步地做到这一点?任何指导或线索就足够了,并且值得赞赏。
答案 0 :(得分:1)
为此,我会考虑在您的服务中使用BehaviorSubject
。这样的事情将使您可以通过组件更新主题,并在UI上实时查看它的更新。
这是我建立一个简单的工作示例的方式:
favorite.service.ts
import { BehaviorSubject } from 'rxjs';
export class FavoriteService {
public favs = new BehaviorSubject([]);
constructor() { }
public updateSubject(newItem: any[]): void {
this.favs.next(newItem)
}
}
favorite.component.ts
export class FavoriteComponent implements OnInit {
public favorites = this.service.favs;
ngOnInit(): void {
const items = ['item1', 'item2'];
this.service.updateSubject(items);
}
}
您可以在html中看到更新后的数组,如下所示:
favorite.component.html
<div *ngFor="let item of favorites.value">
{{item}}
</div>
因此,每当调用updateSubject方法时,它将使用一个新数组更新行为主题,并且添加/更改的所有项目都应立即显示在您的html上。