Как использовать ссылку href для навигации по угловому маршруту? - PullRequest
0 голосов
/ 13 сентября 2018

Я отправляю пользователю письмо с кодом активации. после нажатия кнопки активации пользователь перенаправил мое угловое приложение. но не перенаправлять точный маршрут. фактически перенаправленный домашний маршрут.

как выполнить файл ActivationComponent.ts, используя кнопку активации электронной почты

Путь приложения

   { path: 'home', component: SearchBarComponent },   
   { path: 'user/activation/:email/:token',component: ActivationComponent }   
   { path: '**', redirectTo: 'home', pathMatch: 'full' },

Ссылка на электронную почту href

www.example.com/#/user/activation?email=example@gmail.lk&token=Mo0hFjfKqY6tPmDzAkiRmEKE5aQDzOtDTGleJmdQsY2DtVOOPnn0Uas1REZaecCE

Компонент активации

import { SnotifyService } from 'ng-snotify';
import { AuthenticationService } from './../../../http/services/authentication.service';
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router, Params } from '../../../../../node_modules/@angular/router';

@Component({
  selector: 'app-activation',
  templateUrl: './activation.component.html',
  styleUrls: ['./activation.component.scss']
})
export class ActivationComponent implements OnInit {

  private email: string;
  private token: string;
  public message: string;
  constructor(
    private router: ActivatedRoute,
    private route: Router,
    public auth: AuthenticationService,
    private snotifyService: SnotifyService) {}

  ngOnInit() {
    this.router.queryParams
    .subscribe(params => {
      this.email = params.email;
      this.token = params.token;
    });
    console.log(this.email);
    console.log(this.token);
    if (this.email && this.token) {
      this.auth.auActivation(this.email, this.token).subscribe(
        req => {
         this.message = req['success'] ;
        }
      );
    }
  }


  requestLink(): void {
    this.auth.auRequestActivation().subscribe(
      req => {
        this.snotifyService.success('varification email request sended!', 'Success');
      }
    );
  }

}

Вы можете мне помочь? Как решить эту проблему. учитывая этот пример или учебную ссылку

1 Ответ

0 голосов
/ 13 сентября 2018

Поскольку ваш маршрут 'user/activation/:email/:token', это означает, что URL для получения параметров должен быть примерно таким: .../user/activation/your@email.com/someRandomNumberAndLetterToken

чтобы поймать их, добавьте

private activatedroute: Activatedroute

в вашем конструкторе.

Добавьте этот код, добавьте самое начало вашей OnInit функции

this.email = this.activatedroute.snapshot.params['email'];
this.token = this.activatedroute.snapshot.params['token']; 

Затем вы можете продолжить выполнение своего скрипта. Я приложил фотографию, чтобы показать вам, что вы получаете в консоли (в моем случае):

snapshot debug

Routes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...