rxjs 相关问题

JavaScript的Reactive Extensions(RxJS)是一组库,用于使用可观察集合和Array Extras样式组合来编写异步和基于事件的程序。

在外部点击时关闭 mat-sidenav

每当用户单击不在其中的某个位置时,我都会尝试关闭我的侧边栏。我已经尝试过双向数据绑定,现在我正在尝试使用 rxjs 的主题 应用程序模板 每当用户单击不在其中的某个位置时,我都会尝试关闭我的侧边栏。我已经尝试过双向数据绑定,现在我正在尝试使用 rxjs' Subject 应用程序模板 <app-sidenav [openedSubject]="openedSubject"></app-sidenav> 应用程序组件 openedSubject = new Subject<boolean>(); @HostListener('click', ['$event']) clickedInside($event) { this.openedSubject.next(false); } SidenavComponent @Input() openedSubject: Subject<boolean>; @ViewChild('sidenav') sidenav: MatSidenav; ngAfterContentInit() { this.openedSubject.subscribe(opened => { if(this.sidenav.opened) opened || this.sidenav.toggle(); }); } toggle() { this.openedSubject.next(!this.sidenav.opened); } Sidenav模板 <mat-sidenav-container> <mat-sidenav #sidenav><mat-toolbar color="primary">Menu</mat-toolbar> </mat-sidenav> <mat-sidenav-content> <mat-toolbar color="primary"> <button (click)="toggle()">toggle</button> </mat-toolbar> </mat-sidenav-content> </mat-sidenav-container> https://stackblitz.com/edit/ng-sidenav-experiments 但是好像有逻辑错误。 click 事件 覆盖整个文档,但它应该排除侧边导航和工具栏。 成功了。问题是我对 HostListener 的使用,而我真的只想像这样 (click) : <sidenav [openedSubject]="openedSubject"></sidenav> <fake-route-view (click)="dismissSidebar()"></fake-route-view> 完整工作版本:https://stackblitz.com/edit/ng-sidenav-experiments

回答 1 投票 0

在浏览器中导入 RxJS 6?

现在所有现代浏览器都支持 javascript 模块,我正在尝试直接在浏览器中导入代码。我们可以从 unpkg.com 获取 npm 模块,并且我找到了 jspm 项目,它包装了 npm

回答 3 投票 0

有没有一种方法可以使用 timeout() 运算符创建计数器,用于使可观察对象超时?

需要在 UI 中显示倒数计数器 10 秒,同时等待下面的可观察值发出。 如果低于 observable 在 10 秒内没有发出,则超时。 UI柜台也可以是club吗...

回答 1 投票 0

Angular 组合多个路由器事件

我只是有一个查询我有两个路由器事件片段 this.router.events.pipe(过滤器((evt:any)=> evt实例RoutesRecognized),pairwise()) .subscribe((事件:路由识别...

回答 1 投票 0

Angular 9/rxjs:如何处理 switchMap 内抛出的错误?

我正在使用 Angular (9) 支持的 Bootstrap (6.1.0) TypeAhead 并定义其搜索功能,如下所示: 搜索 = (text$: Observable) => { 返回文本$.pipe( 去抖时间(200)...

回答 2 投票 0

rxjs forkJoin 发生错误后不会停止后续请求

问题在于,即使前一个查询失败,forkjoin 数组中的查询也会继续执行。例如,在第一个请求 putCategory$ 中已经发生错误(名称已经 exi...

回答 1 投票 0

FORKJOIN 发生错误后不会停止后续请求

问题在于,即使前一个查询失败,forkjoin 数组中的查询也会继续执行。例如,在第一个请求 putCategory$ 中已经发生错误(名称已经 exi...

回答 1 投票 0

如何将两个可观察数组连接成一个数组?

示例: var s1 = Observable.of([1, 2, 3]); var s2 = Observable.of([4, 5, 6]); s1.merge(s2).subscribe(val => { 控制台.log(val); }) 我想要得到 [1,2,3,4,5,6] 代替 [1,2,3] [4,...

回答 6 投票 0

如何在 Angular 中对多个可观察量执行条件操作?

我想在用户单击按钮时导出包含数据列表的文件。我有一个可观察的(user$),其中包含用户的身份。如果用户无权获取此数据,...

回答 1 投票 0

我的角度模板订阅后不刷新

我正在使用 Angular 17,我正在从 API 获取数据,但收到数据后模板不会更新,也无法显示我的数据。 我向服务器发出请求的组件服务: 重要...

回答 1 投票 0

监控 RxJS 订阅应用程序范围

我正在寻找一种方法来监视 RxJS 订阅以检测应用程序中的内存泄漏。该应用程序在浏览器中运行。 到目前为止,我的方法是包装原型方法 Observable。

回答 1 投票 0

RxJs 中的 mapTo 有什么意义?

我正在阅读 mapTo 的文档,但我根本不明白该运算符存在的意义。我明白它的作用,但下面的两行应该产生相同的结果。 常量结果=“b...

回答 3 投票 0

无法将多个 api 响应从解析器传递到组件

我正在尝试从两个不同的 api 获取响应并将其合并作为单个对象发送到解析器。 我使用解析器将数据传递到要加载的文档组件。 但是,...

回答 1 投票 0

如何使用Record显示与后端写入的值不同的值

我有这个 HTML 我有这个 HTML <unified-platform-drop-down-list [name]="MeetingToolPropertyType.ClientType" [options]="clientTypeOptions$" [isRequired]="false" class="input-width" [parentFormGroup]="optionsFormGroup" [uniqueId]="'id'" [isHorizontal]="true"> </unified-platform-drop-down-list> 还有这个TS: clientTypeOptions$ = new BehaviorSubject<string[]>(Object.values(ClientTypeRecord)); export enum ClientTypeInputEnum { TEAMDesktop = 'TEAMS Desktop', TEAMSWeb = 'TEAMS Web' } export const ClientTypeRecord: Record<ClientTypeInputEnum, string> = { [ClientTypeInputEnum.TEAMDesktop]: 'TEAMS Desktop', [ClientTypeInputEnum.TEAMSWeb]: 'TEAMS Web' }; 我从后端获得的值看起来像这样 TEAMSDesktop |团队网站。选择、保存、刷新页面后,用户看到的是后端格式的值。 我需要它以类似 ClientTypeInputEnum 的格式显示它。 好吧,经过多次尝试,这对我有用 override ngOnInit(): void { super.ngOnInit(); this.meetingsGroup = this.formGroupDir.control.get('meetings') as FormGroup; const value = this.meetingsGroup.get('options.clientType')?.value; const enumValue = this.mapBackendValueToEnum(value); this.meetingsGroup.get('options.clientType')?.patchValue(enumValue); } mapBackendValueToEnum(backendValue: string): string { switch (backendValue) { case 'TEAMDesktop': return ClientTypeInputEnum.TEAMDesktop; case 'TEAMSWeb': return ClientTypeInputEnum.TEAMSWeb; default: return backendValue; } }

回答 1 投票 0

Angular 模板中可观察对象上的 ObjectUnsubscribedErrorImpl

我正在使用 Angular 11,并且我正在使用异步管道访问组件模板中的可观察对象。 路线的第一次加载,一切都工作得很好。没有错误。当我远离...

回答 6 投票 0

rxjs 仅在特定时间间隔发出

我只想在特定的时间间隔(特别是 3 秒和 6 秒)调用函数,并且在找到要使用的正确运算符时遇到一些困难。 bufferTime 看起来不错

回答 2 投票 0

Angular 订阅多个部分相互依赖的异步 http 调用并返回数组

我对 Angular 和 JavaScript 相当陌生,正在构建我的第一个 Angular 仪表板应用程序,该应用程序查询 Azure DevOps api 以获取测试结果: 查询 API 以获取发布定义的过滤列表...

回答 1 投票 0

对数组中的每个项目进行多个 api 调用的批量操作

我正在尝试构建一个批处理过程,迭代可观察的“客户”对象数组...... 构建一个请求对象来调用 api,返回一个 observable 根据结果,构建另一个

回答 1 投票 0

将 CoreModule 导入另一个组件模块时存在多个主题

所以在我的app.component中包含每个页面上的标题(在app.module中导入的CoreModule)以及一个基于路由加载模块的app-routing.module(在此...

回答 1 投票 0

Angular Rxjs。出现错误后不要关闭订阅,而是在 Angular 的错误处理程序中记录错误

社区。 我有一个问题。当错误发生时,我需要在 Angular 的错误处理程序中记录错误,而不关闭流订阅。 我有以下数据流: /**数据提供商服务...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.