使用角度通用路径未加载时出现奇怪的问题

时间:2019-07-20 10:23:25

标签: angular

当我不使用ssr进行服务时它起作用,但是当我仅运行服务器端渲染时,就会出现问题。我在调用api的地方还有其他组件,它们工作正常。

我认为这是一个问题,任何人都可以解释其发生的原因以及什么是好的解决方案 How to render angular4 universal with query parameter route

npm run build:ssr && npm run serve:ssr

我认为这是一个问题,任何人都可以解释其发生的原因以及什么是好的解决方案 How to render angular4 universal with query parameter route

指向该组件的链接就像mysite.com/reset-password?token=sddskllksdldslkdslkdssewl

ts文件中有一个api,可以调用该api来检查令牌是否有效。 当我尝试在ssr处于打开状态时在浏览器中打开“重置密码”链接时,则根本无法加载页面,chrome选项卡中的加载器一直在旋转,但是页面中没有代码被执行,network选项卡中没有活动在控制台中。

当我仅删除以下代码时,页面就会加载。

this.http.post(environment.MY_BACKEND_HOST + 'api/check-reset-password-token', token).subscribe((response: any)=>{
        this.token = true;
      },(error: any)=>{ console.log(error); this.token = false; });

...路由

{
    path: 'reset-password',
    component: ResetPasswordComponent
 }

... ts代码

constructor(private formBuilder: FormBuilder, private auth: AuthService, private route: ActivatedRoute, private router: Router,  private toastr: ToastrService, private renderer: Renderer2, private http: HttpClient) {
    route.queryParams.subscribe(params=>{
      if (this.router.url.indexOf('/reset-password') > -1) {
      this.form.token = params['token']
      if(this.form.token) {
        this.LoadingOnTokenCheck = true;
      } else {
        this.router.navigate(["/"]);
      }
    }
    }); 
   }

  ngOnInit() {
    this.resetPassword = this.formBuilder.group({
      password: ['', [Validators.required, Validators.minLength(8)]],
      password_confirmation: ['', Validators.required],
    })
    const token = {
      token: this.form.token
    }

    if(this.form.token) {
      console.log(token)
      this.http.post(environment.MY_BACKEND_HOST + 'api/check-reset-password-token', token).subscribe((response: any)=>{
        this.token = true;
      },(error: any)=>{ console.log(error); this.token = false; });
  }
  }

0 个答案:

没有答案