使用服务保存产品信息

时间:2019-06-13 11:42:54

标签: angular

您好,亲爱的编码员, 我有一个项目,我必须将某些产品另存为“最喜欢的组件”部分中的“收藏夹”,我必须将它们保存到服务中,然后从该特定组件中调用它,任何人都可以帮助您实时,异步地做到这一点?任何指导或线索就足够了,并且值得赞赏。

1 个答案:

答案 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上。