Angular中的数组可观察对象需要调用两次才能正常工作
创始人
2024-10-31 10:00:15
0

这个问题通常发生在使用异步数据绑定时,因为数组在异步返回后无法自动更新。为了解决这个问题,我们可以使用RxJS的行为主题(BehaviorSubject)来创建一个可绑定的数组对象。这样一来,只需在初始化时调用一次即可正常工作。

以下是一个示例代码:

import { Component, OnInit } from '@angular/core';
import { BehaviorSubject } from 'rxjs';

interface Person {
  name: string;
  age: number;
}

@Component({
  selector: 'app-person-list',
  template: `
    
{{ person.name }}: {{ person.age }}
` }) export class PersonListComponent implements OnInit { private _people = new BehaviorSubject([]); public get people$() { return this._people.asObservable(); } ngOnInit() { this.fetchPeople(); } private fetchPeople() { // Async API call const people: Person[] = [{ name: 'Alice', age: 30 }, { name: 'Bob', age: 25 }]; this._people.next(people); } }

在这个例子中,我们首先引入了RxJS的行为主题,并定义了一个Person接口。在组件中,我们创建了一个私有的行为主题_people,它的类型是Person数组。我们还定义了一个可观察对象people$,它是_people的asObservable()结果。在fetchPeople()方法中,我们通过异步API调用获取了一个Person数组,并将其传递给_people的next()方法来更新数据。最后,在模板中,我们使用ngFor和async管道来遍历people$可观察对象。

通过这个方法,我们可以避免调用数组可观察对象两次的问题,同时确保我们的数据绑定始终是最新的。

相关内容

热门资讯

科普分享!微信小程序微乐辅助器... 科普分享!微信小程序微乐辅助器教程,微乐家乡小程序辅助,详细脚本(有挂工具)1、玩家可以在微信小程序...
每日必看!创思维辅助器,挂是真... 每日必看!创思维辅助器,挂是真的假的,详细技巧(确实有挂)1、挂是真的假的免费脚本咨询教程、挂是真的...
必备辅助推荐!摸一把游戏辅助软... 必备辅助推荐!摸一把游戏辅助软件,奇迹手游辅助,详细软件(有挂功能)1、该软件可以轻松地帮助玩家将摸...
热点推荐!陕西辅助,微信牵手跑... 热点推荐!陕西辅助,微信牵手跑胡子辅助工具,详细软件(揭秘有挂)1)微信牵手跑胡子辅助工具有没有挂:...
如何分辨真伪!蜀门手游辅助免费... 如何分辨真伪!蜀门手游辅助免费脚本,途游游戏辅助工具,详细技巧(有挂技术)进入游戏-大厅左侧-新手福...
玩家必看攻略!广东闲来辅助工具... 玩家必看攻略!广东闲来辅助工具,随意玩免费辅助器有挂吗,详细插件(有挂详情)1)随意玩免费辅助器有挂...
玩家必看秘籍!广西老友麻将有挂... 玩家必看秘籍!广西老友麻将有挂吗,土豪联盟怎么开辅助,详细app(有挂教学)1、完成土豪联盟怎么开辅...
玩家爆料!潮友会鱼虾蟹有没有挂... 玩家爆料!潮友会鱼虾蟹有没有挂辅助,龙岩闲游安卓脚本,详细app(了解有挂)1、潮友会鱼虾蟹有没有挂...
记者爆料!海米大厅辅助,三哥玩... 记者爆料!海米大厅辅助,三哥玩辅助,详细神器(真的有挂)1、玩家可以在海米大厅辅助线上大神俱乐部对游...
揭秘攻略!518互娱脚本,八闽... 揭秘攻略!518互娱脚本,八闽状元郎辅助器,详细技巧(今日头条)亲,关键说明,八闽状元郎辅助器透视脚...