Как сохранить старый URL-адрес при навигации по странице 404? [Дубликат]

Добавить почтовый заголовок в функцию почты

$header = "From: noreply@example.com\r\n"; 
$header.= "MIME-Version: 1.0\r\n"; 
$header.= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$header.= "X-Priority: 1\r\n"; 

$status = mail($to, $subject, $message, $header);

if($status)
{ 
    echo '<p>Your mail has been sent!</p>';
} else { 
    echo '<p>Something went wrong, Please try again!</p>'; 
}
43
задан totoro 5 May 2016 в 15:43
поделиться

3 ответа

Обновить

router.navigateByUrl("/team/33/user/11", { skipLocationChange: true });
<a [routerLink]="..." skipLocationChange>click me</a>

Обновить

Существует PR для поддержки этого непосредственно https://github.com/angular/angular/pull/

  • https://github.com/angular/angular/issues/9949
  • Оригинал

    Вы можете реализовать пользовательский PlatformLocation аналогично BrowserPlatformLocation , но вместо вызова ot history.pushState(), history.replaceState(), history.back() и history.forward() сохраняют изменения в локальном массиве.

    Вы можете затем сделайте Угловое использование своей пользовательской реализации, предоставив ее как

    bootstrap(AppComponent, 
        [provide(PlatformLocation, {useClass: MyPlatformLocation})]);
    
    50
    ответ дан Günter Zöchbauer 20 August 2018 в 23:41
    поделиться
    • 1
      в настоящее время я не называю history.pushState(), history.replaceState() или другие. можете ли вы указать мне какой-то ресурс относительно pushState и PlatformLocation? благодаря! – totoro 5 May 2016 в 17:19
    • 2
      Вы не используете маршрутизатор через PlatformLocation. Это то, что обновляет URL-адрес. Если вы предоставили пользовательскую реализацию для PlatformLocation, вы можете предотвратить это. Я еще много об этом не думал. Возможно, вы можете просто предоставить реализацию, которая ничего не делает, и нет необходимости поддерживать какое-либо состояние. Большая часть этого - просто заставить кнопки «назад / вперед» работать. Если вы не учитываете навигацию по URL-адресу, это может и не иметь смысла. – Günter Zöchbauer 5 May 2016 в 17:45
    • 3
      не могли бы вы привести пример (или указать мне на некоторые ресурсы), как реализовать этот пользовательский PlatformLocation и где его разместить? еще раз спасибо! – totoro 5 May 2016 в 18:19
    • 4
      Извините, я забыл добавить URL-адрес. Я обновил свой ответ. Когда у вас есть пользовательская реализация, вы предоставляете его bootstrap(AppComponent, [provide(PlatformLocation, {useClass: MyPlatformLocation})]) – Günter Zöchbauer 5 May 2016 в 18:47
    • 5
      Атрибут skipLocationChange = магия уровня Гэндальфа – Code Whisperer 21 April 2018 в 13:48

    Наконец, он работает в окончательном выпуске Angular2. Вам необходимо передать {skipLocationChange: true} при навигации по пути i.e.

     this.router.navigateByUrl('path', { skipLocationChange: true });
    
    12
    ответ дан shan kulkarni 20 August 2018 в 23:41
    поделиться
    • 1
      Как сделать {skipLocationChange: true} из тега привязки? – Aniruddha Das 21 September 2016 в 20:44
    • 2
      Удивительный ... Работает для меня ... – Kamran Aslam 3 March 2017 в 08:41
    • 3
      Нужно ли вообще делать это глобально, чтобы каждый вызов navigate не нуждался в данных параметрах? – Adam Hughes 9 November 2017 в 23:38
    • 4
      работает на меня! Я использую это для не найденной страницы и вместо использования 'history.go (-2);' Я предпочитаю не изменять неправильный URL. Благодаря! – Helen 18 April 2018 в 04:26

    this.router.navigateByUrl('path', { skipLocationChange: true }); также работал для меня.

    В массиве Routes я также добавил свой путь для загрузки компонента, как показано ниже:

    const appRoutes: Routes = [    
       { path: 'Account/MySchool', component: MySchoolComponent }
    ];
    

    И в файле из там мне нужно заменить компонент, инициализировать объект router, как показано ниже, и позвонить в нужное место

    import { Router } from '@angular/router';
    
    constructor(private router: Router) {    }
    
    
    onSubmit() {        
        this._requestService.postPageOneData("Account/SavePageOneData", this.userProfile)
            .subscribe((response) => {
                if(response.status == 'success'){
                       this.router.navigateByUrl('Account/PageTwoSelection', { skipLocationChange: true });
                  }
            }, this.handleErrorSubscribed );
        }
    
    1
    ответ дан Vicky 20 August 2018 в 23:41
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: