Angular2 Router - Wer weiß, wie zu verwenden canActivate in der app.ts also kann ich die redirect zur Startseite, wenn man nicht angemeldet
Angular2 Router - Wer weiß, wie zu verwenden canActivate in der app.ts also kann ich die redirect zur Startseite, wenn man nicht angemeldet
Ich bin mit Typoskript und eckig 2.
Aktuellen Versuch unter meine Konstruktor in meiner app.ts-Datei:
canActivate(instruction) {
console.log("here - canActivate");
console.log(instruction);
this.router.navigate(['Home']);
}
Es derzeit nicht getroffen werden.
Irgendeine Idee warum?
Muss einen Titel Bearbeiten.
InformationsquelleAutor AngularM | 2016-01-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, in der Dokumentation sieht, wie das ist, was es exportiert.
Unten in der Angular2 Dokumentation fügen Sie das snippet :
exportiert aus angular2/router
https://angular.io/docs/ts/latest/api/router/CanActivate-decorator.html
Also, wenn Sie schauen, um zu tun, Umleitung von einer höheren Ebene.
Sie würde nicht verwenden Sie die CanActivate decorator würden Sie tun, die folgenden.
Dieser Implementierung verarbeitet keine neue Anforderung an eine Richtlinie und führt die Funktion aktivieren, wo Ihre route authentifizierungslogik wird.
Der obige code aufgerufen werden würde, so etwas wie AuthRouterOutlet.
und Sie würden haben, um es zu Ihrer app.ts über die
Ich habe es auf meine Antwort, es ist in angular2/router
Kann ich die @CanActivate zu meiner app.ts-Datei? Denn ich will redirect der Benutzer zu einer anderen route, wenn Sie nicht authentifiziert sind
Ich denke, Sie müssen Sie auf die Komponenten, wo Sie wollen, zu Reiten, Ihre navigation.
Ich will, dass es in einem globalen Bereich wie app-ts, so kann ich umleiten, wenn Benutzer versuchen zu erreichen-Seiten ohne Anmeldung
InformationsquelleAutor inoabrian
Mit der neuen beta-Version des Routers, Sie können auch sehen, meine Antwort hier, wie das CanActivate Schnittstelle:
https://stackoverflow.com/a/38369948/1944351
Mithilfe des decorator wie bereits in anderen Antworten ist auch in Ordnung.
InformationsquelleAutor Nilz11
Diese Antworten sind nicht mehr gültig, in der RC-Kandidat von 22/6/16.
Gibt es eine Menge zu reden, eine neue Lösung für
@CanActivate
annotation, aber Sie können wieder dieangular-2/router-deprecated
version in der Zwischenzeit.Wenn Sie möchten, Folgen Sie den updates zu diesem Bereich wenn Sie wollen, verwenden Sie die neueren router Umsetzung bitte schauen Sie sich diese zwei github-Fragen:
Sorry, es gibt keine vollständige Antwort jetzt, wenn ich sehe, jede weitere Fortschritte werde ich aktualisieren diese Antwort. Ich bin auf der Suche nach einer eleganten Lösung.
Für den Zwischenbericht habe ich nur verwendet eine
ngIf='fooObject'
in einem div-check für das verwendete Objekt in einer untergeordneten Richtlinie aufgefüllt/truthy und dann machen die den rest der Komponenten html. Es ist nicht ideal, aber es funktioniert konsequent jetzt. Ihnen helfen kann oder nicht, je nach Ihrem Anwendungsfall. Ich brauche nicht umleiten, nur überprüfen Sie meine Daten hat, behoben für die Anzeige meiner Komponente.InformationsquelleAutor MJB
Hier:
https://angular.io/docs/ts/latest/api/router/CanActivate-decorator.html
CanActivate
ist eine Anmerkung, keine Funktion. Verwenden Sie es wie folgt:routerOnActivate
IST eine Funktion, die Sie verwenden in der Komponente:https://angular.io/docs/ts/latest/api/router/OnActivate-interface.html
Das eckige.io-Dokumentation ist schlecht für die Beispiele.
@CanActivate(()=>Konsole.log('Sollten Sie die Komponente Aktivieren?')) code scheint nicht zu funktionieren
aus angular.io/docs/ts/latest/api/router/OnActivate-interface.html, importieren Sie die OnActivate-Schnittstelle , aber es ist nicht notwendig, solange die Komponente, die Methode, die der router nennen Sie es, wenn Sie Ihre Methode aufgelöst wird und eine route
Und ich kann diese in meiner app.ts-Datei?
InformationsquelleAutor Langley
@CanActivate entfernt wurde. Weitere details finden Sie hier.
Soll nun route.canActivate
InformationsquelleAutor Ori Calvo