Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 有没有一种方法可以跳过某些路线?_Angular - Fatal编程技术网

Angular 有没有一种方法可以跳过某些路线?

Angular 有没有一种方法可以跳过某些路线?,angular,Angular,我已经使用Angular有一段时间了。 但有一个功能我还没有弄清楚如何实现 假设您已经在Angular中创建了一个考试网站。 当用户在网站注册时,他/她将拥有他们可以参加的考试列表。 点击任何考试,他们将一次看到一个问题,然后相应地回答。 最后他们看到了结果 此时,如果用户使用浏览器返回或返回,他/她将看到最后一个问题,他们可以更新它。类似的方式,他们将能够更新所有的答案,直到他们得到100%。这是错误的 我想实现的是,如果您从结果屏幕单击浏览器返回,则它们必须返回到考试列表。这样他们就不会改变

我已经使用Angular有一段时间了。 但有一个功能我还没有弄清楚如何实现

假设您已经在Angular中创建了一个考试网站。 当用户在网站注册时,他/她将拥有他们可以参加的考试列表。 点击任何考试,他们将一次看到一个问题,然后相应地回答。 最后他们看到了结果

此时,如果用户使用浏览器返回或返回,他/她将看到最后一个问题,他们可以更新它。类似的方式,他们将能够更新所有的答案,直到他们得到100%。这是错误的

我想实现的是,如果您从结果屏幕单击浏览器返回,则它们必须返回到考试列表。这样他们就不会改变任何答案

注意:我可以使用canDeactivate Gaurd阻止他们改变路线。但对于浏览器,不会调用back Guards,甚至我也不希望它将用户卡在两者之间,除了继续之外别无选择


我希望用户从屏幕A转到屏幕B,从屏幕B转到屏幕c,当用户从屏幕c单击或触发返回操作时,应该将用户带到屏幕A。

尝试这样实现

this.router.navigateByUrl('question(1-n)', { skipLocationChange: true }).then(() => {
                this.router.navigate(['result'], { replaceUrl: true });
            });

在路由器中使用
replaceUrl
。在服务中,保存结果数据,检查下一个问题的答案是否存在。如果是这样,就不允许保存。您可以在显示页面时执行相同的操作,禁用表单。创建一个类似于服务的防护,它将检查您是否有权访问页面谢谢。。。它有助于跳过一条路线。