我正面临这种奇怪的情况。我在延迟加载的模块中有3条路由。
confirm.route
this.sub = this._route.params.subscribe((params: Params) => {
const txn_id = params['id'];
const transactions = this.store.select(fromStore.getAllTransactions);
this.store.dispatch( new actions.Query() );
transactions.subscribe(data => {
this.transaction = data.filter((item) => {
return item.id === txn_id;
});
this.transaction = this.transaction[0];
if(this.transaction) {
if(this.transaction.payStatus){
this._notify.update('This transaction is completed.
You will be redirected!', 'info');
setTimeout(() => {
this._router.navigate([`/success/${this.transaction.id}`]);
}, 3000);
}
}
});
});
success.route
this.sub = this._route.params.subscribe((params: Params) => {
const txn_id = params['id'];
const transactions = this.store.select(fromStore.getAllTransactions);
this.store.dispatch( new actions.Query() );
transactions.subscribe(data => {
this.transaction = data.filter((item) => {
return item.id === txn_id;
});
this.transaction = this.transaction[0];
if(this.transaction) {
if(!this.transaction.payStatus){
this._notify.update('This transaction is not completed.
You will be redirected!', 'info');
setTimeout(() => {
this._router.navigate([`confirm/${this.transaction.id}`]);
}, 3000);
}
}
});
});
status.route
onStatusSubmit(){
const txn_id = this.statusForm.value.txn_id;
const transactions = this.store.select(fromStore.getAllTransactions);
this.store.dispatch( new actions.Query() );
transactions.subscribe(data => {
this.transaction = data.filter((item) => {
return item.tx_id === txn_id;
});
this.transaction = this.transaction[0];
});
this.transactionOk = true;
}
在 confirm.route 组件类中,存在一个条件。如果条件为真,则重定向到 success.route 。 这很好..
现在,在 success.route 中,我有一个routerLink导航到 status.route 。这也很好。
然后在status.route中我有一个模板表单。
问题出现了,当我从确认.route 时,它会按预期将我重定向到 success.route 。当我点击 status.route 时,它运行正常。
但是,如果我在 status.route 中提交表单,则会将我重定向到 success.route 。
在 status.route 中,没有重定向条件。
注意:我确实在成功和确认课程上都使用了ngOnDestroy。 如果我在 success.route 或 status.route 上重新加载页面,它就可以正常运行。
那么,当我在 confirm.route
时,为什么 status.route
中的条件仍然有效?这是由于ngrx?