Angular - Sweetalrt2 перенаправляет перед нажатием OK - PullRequest
0 голосов
/ 20 сентября 2019

Я использую Angular-7 для своего веб-приложения.В проекте я применил sweetalert2.

client.component.ts

import { Component, OnInit, ElementRef, NgZone, ViewChild } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { ApiService } from '../../shared/services/api.service';
import { TokenService } from '../../shared/services/token.service';
import { Router } from '@angular/router';
import { SnotifyService } from 'ng-snotify';
import swal from 'sweetalert2';
import { FormControl } from "@angular/forms";
import { MapsAPILoader } from '@agm/core';

onSubmit(){
 this.notify.clear();
 var header = {
  'Content-Type': 'application/json'
 }
 return this.api.post('clientquotelanding', this.form, header).subscribe(
  response => {
  swal.fire(
    'Congratulations!',
    'Your Quote have been successfully received. You will hear from us shortly through the provided email. Thank you!',
    'success'
  )
  },
  error => this.errorHandle(error),
  this.router.navigateByUrl('/landing')
);
}

Проблема, с которой я столкнулся, заключается в том, что когда я нажимаю кнопку подтверждения, страница перенаправляется на целевую страницу до sweetalert2.сообщение выскакивает.Как мне решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019
swal({
        title: 'Are you sure?',
        text: "You won't be able to revert this!",
        type: 'warning',
        showCancelButton: true,
        confirmButtonClass: 'btn btn-success',
        cancelButtonClass: 'btn btn-danger',
        confirmButtonText: 'Yes, delete it!',
         buttonsStyling: false
      }).then((result) => {
        if (result.value) {
          this.router.navigateByUrl('/landing');
        }
      })
0 голосов
/ 20 сентября 2019

Проблема с оператором this.router.navigateByUrl('/landing').Вы должны поместить это в успех.Подписчик принимает третий аргумент для незавершенной операции.

Попробуйте что-то вроде этого.

response => {
  swal.fire(
    'Congratulations!',
    'Your Quote have been successfully received. You will hear from us shortly through the provided email. Thank you!',
    'success'
  );
this.router.navigateByUrl('/landing')
  },

Подробнее об этом можно прочитать здесь .

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