angular - ReplaySubject 上的方法 next() 在订阅中不起作用
问题描述
我有一个代码:
enum URLs {
'STORY_BUILDER' = 'story-builder',
'IB_VIEW' = 'ib-view',
}
defaultGroupStoryRequest$ = new ReplaySubject<boolean>();
defaultGroupIbViewRequest$ = new ReplaySubject<boolean>();
const invalidRequest = R.pathOr(
false,
['extras', 'state', 'invalidRequest'],
navigation,
);
if (invalidRequest) {
this.router.events
.pipe(
filter((e) => e instanceof NavigationEnd),
pairwise(),
)
.subscribe((e) => {
const parts = (e[0] as NavigationEnd).url.split('/');
const previousPage = parts[parts.length - 1];
this.defaultGroupIbViewRequest$.next(previousPage === URLs.IB_VIEW);
this.defaultGroupStoryRequest$.next(previousPage === URLs.STORY_BUILDER);
});
}
在模板中:
<shared-overlay [isVisible]="defaultGroupStoryRequest$ | async">
<ng-template>
<shared-confirm
type="warning"
question="Generating Story for the default group is not allowed."
label="Please select different group."
acceptText="Ok"
acceptButtonStyle="btn-danger-outline"
[showDeclineButton]="false"
(accept)="defaultGroupStoryRequest$.next(false)"
>
</shared-confirm>
订阅正在执行,但我无法使用next()
显示弹出窗口的方法发送值。为什么我的next()
方法不执行?我想获取上一页,并与枚举中的值进行比较,然后在屏幕上显示弹出窗口。
解决方案
推荐阅读
- haskell - Haskell 种类系统与类型系列和多参数类型类
- c++ - 关闭窗口按钮'x' Qt
- maven - Maven 将库添加到 pom.xml 文件时自动下载
- java - 打印沙漏图案
- scala - 将文本预处理函数应用于 scala spark 中的数据框列
- android - Android 10:在应用关闭(死机)时使用 Firebase 消息打开活动
- swift - 帖子和评论的 Firestore 数据模型
- c - 在C中按值调用函数
- python - 如何使用商品价格作为 wordcloud 中的文本频率?
- python-3.x - 在 selenium python 中每次搜索得到 50 个搜索结果