rxjs/Angular中的订阅顺序

rxjs/Angular中的订阅顺序,angular,rxjs,Angular,Rxjs,我有一个带有两个不同指令的反应式表单。一个是字段级指令,它订阅ngSubmit并根据FormControl的无效状态控制字段正下方显示的字段级错误消息的可见性。另一个是在顶层添加的指令,该指令也将订阅ngSubmit,但如果无效字段隐藏在视图中,则会滚动文档 起初,我认为我可以将第二个指令从第一个指令中删除,这意味着当ngSubmit发生时,字段级指令将执行并突出显示错误,然后第二个指令将知道错误位置(error类提供的一个简单查询选择器),并检查页面上的唯一错误是否隐藏在视图中 但是,它看起来

我有一个带有两个不同指令的反应式表单。一个是字段级指令,它订阅ngSubmit并根据FormControl的无效状态控制字段正下方显示的字段级错误消息的可见性。另一个是在顶层添加的指令,该指令也将订阅ngSubmit,但如果无效字段隐藏在视图中,则会滚动文档

起初,我认为我可以将第二个指令从第一个指令中删除,这意味着当ngSubmit发生时,字段级指令将执行并突出显示错误,然后第二个指令将知道错误位置(error类提供的一个简单查询选择器),并检查页面上的唯一错误是否隐藏在视图中

但是,它看起来像是表单级指令ngSubmit subscription首先触发,此时还没有错误消息(仍然显示为:none)。那么,问题是,是否有可能在第二个更高级别的指令之前,以某种方式启用第一个字段级指令的ngSubmit订阅

另一种方法更为复杂,因为它要求scroll-into-view指令独立工作,检查整个表单控件图中是否存在无效控件,并查找相关的包含div,然后检查它们是否隐藏

那么问题是,是否有可能以某种方式启用第一个字段级别 指令的ngSubmit订阅在第二个更高版本之前启动 一级

我猜你不能控制ngSubmit订阅的流,但是你可以有一个BehaviorSubject变量并订阅它“second ngSubmit”(所以基本上你不会第一次在那里做任何动作),然后你会在最后从“first ngSubmit”发出(.next(true))真值,然后在subscribe{}块,您将执行希望在最后发生的所需操作

那么问题是,是否有可能以某种方式启用第一个字段级别 指令的ngSubmit订阅在第二个更高版本之前启动 一级


我猜你不能控制ngSubmit订阅的流,但是你可以有一个BehaviorSubject变量并订阅它“second ngSubmit”(所以基本上你不会第一次在那里做任何动作),然后你会在最后从“first ngSubmit”发出(.next(true))真值,然后在subscribe{}块,您将执行希望在最后执行的操作。

谢谢,采取了不同的方法并使用了Angle标记每个元素的ng无效类。谢谢,采取了不同的方法并使用了Angle标记每个元素的ng无效类。