Angular_上拉刷新

1.先不做上拉触发,用button模拟一下,触发函数

export class StudyComponent implements OnInit {/*列表数据流 */list$: Observable;/*页面缓存*/beh: BehaviorSubject;/*模拟下拉事件 */scrolEvent = new Subject();ngOnInit() {/*订阅scrolEvent,下方scrol()执行next的时候会跑这个订阅 */this.scrolEvent.pipe(map(() => {this.getdata();})).subscribe();}constructor() {this.list$ = new Observable();this.beh = new BehaviorSubject([]);}/*获取数据 */getdata() {this.list$ = this.beh; // 提供观察者next新数据const oldlist = this.beh.getValue(); // 取旧数据this.serve().subscribe(v => {this.beh.next(oldlist.concat(v));});}/*滚动触发函数 */scrol() {this.scrolEvent.next();}/*模拟接口返回数据 */serve() {return of([Math.random() * 100, Math.random() * 10, Math.random()]);}
}

  html

"list$ | async as list">

"let item of list">{{item}}

2.若是有两个列表(像顶部tab有  待处理、全部)

export class StudyComponent implements OnInit {/*列表数据流 */list$: Observable;/*模拟下拉事件 */scrolEvent = new Subject();/*两个页面数据 缓存*/segData: {flag1: BehaviorSubject,flag2: BehaviorSubject};/*当前页标签 默认页面1*/curFlag = 'flag1';ngOnInit() {this.list$ = new Observable();// this.segData.flag1 = new BehaviorSubject([]);// this.segData.flag2 = new BehaviorSubject([]);this.segData = {flag1: new BehaviorSubject([]),flag2: new BehaviorSubject([])};/*订阅scrolEvent,下方scrol()执行next的时候会跑这个订阅 */this.scrolEvent.pipe(map(() => {this.getdata(this.curFlag);})).subscribe();}constructor() {}/*获取数据 */getdata(flag: string) {this.list$ = this.segData[flag]; // list$指向一个segDataconst oldlist = this.segData[flag].getValue(); // 取旧数据this.serve(this.curFlag).subscribe(v => {this.segData[flag].next(oldlist.concat(v));});}/*滚动触发函数 */scrol(flag: string) {this.curFlag = flag;this.scrolEvent.next();}/*模拟接口返回数据 */serve(flag: string) {return of([Math.random() * 100 + flag,Math.random() * 10 + flag,Math.random() + flag]);}
}

  html

"list$ | async as list">

"let item of list">{{item}}

 

转载于:https://www.cnblogs.com/wskxy/p/10497485.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部