Как перенаправить на домашнюю страницу, прежде чем инициировать дом и данные? - PullRequest
0 голосов
/ 27 мая 2018

У меня есть 3 страницы, 2-я страница с данными на 3-ю страницу.это работает отлично.проблема в том, когда 3-я страница обновляется пользователем, я хотел бы перейти на домашнюю страницу.поскольку нет данных, доступных для 3-й страницы.

Я пытаюсь так:

constructor(private store: StorageService, 
      private sharedData: SharedDatasService, 
      private location:Location,
      private route:Router) {

      console.log('this.sharedData.validationDatas', this.sharedData.validationDatas );

      if(Object.keys(this.sharedData.validationDatas).length === 0 ) { //there is not data.. go to home.
          this.route.navigate(['']);
          return;
      }

    }

Но все же я получаю сообщение об ошибке компиляции DOM.и моя страница вообще не перенаправляется на домашнюю страницу ...

как с этим справиться?

ошибка, которую я получаю:

TypeError: Cannot read property 'book.label.title.packageSizes' of undefined

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Вы можете использовать Route Guards для достижения этой цели.

В вашей конфигурации маршрута

const routes: Routes = [
{ path: 'secondPage', component: SecondPage},
  {
    path: 'thridpage',
    component: ThridPage,
    canActivate: [DataCheckRouteGuard],
  }
];

DataCheckRouteGuard

import { CanActivate } from '@angular/router';
import { Injectable } from '@angular/core';
import { sharedData} from './SharedDatasService';

@Injectable()
export class DataCheckRouteGuard implements CanActivate {

  constructor(private sharedData: SharedDatasService) {}

  canActivate() {
  if(this.sharedData.validationDatas!==undefined) 
   {
     return true;
   } else 
   {
   // No data so navigate to second page
    this.router.navigate(['/secondPage'] 

    return false
   }
  }
}

Использование маршрутов

0 голосов
/ 27 мая 2018

Я изменил свою метку HTML по условию, теперь она работает нормально.

вот обновление:

это было:

{{getLabel('book.label.title.packageSizes')}}

сейчас:

{{getLabel('book?.label.title.packageSizes')}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...