2017-10-19 3 views
0

Ich möchte nur meine Home-Komponente entsprechend der Rolle zu konfigurieren.verschiedene Vorlage URL der gleichen Komponente

zum Beispiel

  1. wenn die emplye Login haben die Rolle = admin, als die Heimat Komponente sollte die Vorlage URL laden, die für den Admin ist.
  2. In ähnlicher Weise, wenn die emplige Anmeldung die Rolle = Kassierer haben, sollte die Home-Komponente die Vorlage URL laden, die für die Kassiererin ist.

kurz ich sage, dass ich eine Komponente haben, und ich möchte auf drei verschiedenen Rollen

möglich, drei verschiedene Template-URLs an drei verschiedenen Zeit laden?

+0

Völlig möglich und es gibt viele Möglichkeiten, dies zu tun. Überprüfen Sie Routing und Router outlet oder ngswitch für ein wenig Einfachheit. – rjustin

+0

können Sie mich bitte zum besten Ansatz umleiten – faizan

+0

Danke #peace – faizan

Antwort

0

würde ich Router Link und Router-Steckdosen verwenden, so Sie

import { Router } from '@angular/router';
hinzufügen private router: Router, in Ihrem Konstruktor in der Skript-Datei importieren müssen und dann können Sie Ihre Bedingungen

if(role === admin) { 
    this.router.navigate(['/admin-page']);  
} else if(role === cashier) { 
    this.router.navigate(['/cashier-page']);  
} 

Auch haben Vergessen Sie nicht, einen Router-Link in der Datei app-module.ts zu erstellen, lassen Sie mich wissen, wenn Sie Hilfe benötigen.

+0

in diesem Fall muss ich 3 Typoskript-Datei (Komponente) für meine drei Rollen verwenden. und jede Komponente hat ihr eigenes HTML-Dateirecht. – faizan

+0

aber in meinem Szenario habe ich eine Komponente und ich möchte drei verschiedene HTML-Datei zur Laufzeit auf der Grundlage der Rollen – faizan

+0

so, wenn Sie nur eine Komponente für alle drei haben dann ist es noch einfacher, in Ihrer ts-Datei erstellen Sie einfach eine neue Variable für die Rolle und weisen Sie der Variablen den Rollenwert zu. Dann tun Sie einfach in Ihrer HTML-Datei

ADMIN CONTENT
.
CASHIER CONTENT

Verwandte Themen