0

Я хотел бы использовать этот простой шаблон пользовательского интерфейса, когда пользователь будет перенаправлен на приборной панели после входа вПеренаправление после входа в систему с angular2-метеора

Таким образом, если пользователь выхода из системы. - он может видеть только главную страницу. После входа в систему он перенаправляется на/панель.

Как я могу это сделать с помощью угловых2 маршрутизаторов и пакетов метеоритов?

Заранее благодарим за любую помощь.

ответ

-1

Это может быть не самое элегантное решение, но я в конечном итоге с помощью автозапуск, чтобы перенаправить пользователя после входа в систему.

$scope.autorun(() => { 
    let currentUser = Meteor.user(); 
    if (currentUser) 
    $state.go('home'); 
}); 
+0

Спасибо за совет, но это не то, что решение для angular1? Как coul я делаю то же самое с ng2? –

+0

Что вы используете для форм регистрации/входа? –

+0

2 выделенных пакета для ng2-meteor: barbatus: ng2-meteor-accounts-ui и barbatus: ng2-meteor-accounts –

0

К сожалению, пакет счетов-щ-видимому, не подвергать жизненный цикл крюк или любой другой очевидный способ запуска дополнительного кода при запуске методов входа и выхода из системы.

Так что это тоже не самое элегантное решение, но это работает, используя angular2-Метеор-счетов-Ui (доступен на GitHub и НПМ):

import { Component, DoCheck } from '@angular/core'; 
import { Router, ROUTER_DIRECTIVES } from '@angular/router'; 
import 'rxjs/Rx'; 
import { Meteor } from 'meteor/meteor'; 
import { MeteorComponent } from 'angular2-meteor'; 
import { InjectUser, LoginButtons } from 'angular2-meteor-accounts-ui'; 

import template from './app.component.html'; 

@Component({ 
    selector: 'app', 
    template, 
    directives: [ LoginButtons, ROUTER_DIRECTIVES ] 
}) 
@InjectUser('user') 
export class AppComponent extends MeteorComponent implements DoCheck { 
    private isLoggedIn: boolean = false; 
    private user: Meteor.User; 

    constructor(private router: Router) { super(); } 

    ngDoCheck() { 
    if (!this.isLoggedIn && !!this.user) { 
     this.isLoggedIn = true; 
     if (this.router.url === '/') { 
     this.router.navigate(['/dashboard']); 
     } 
    } else if (this.isLoggedIn && this.user === null) { 
     this.isLoggedIn = false; 
     if (this.router.url === '/dashboard') { 
     this.router.navigate(['/']); 
     } 
    } 
    } 
} 

Там же пост на Метеор форумах описывая другое решение, не используя пакет счетов-интерфейс и вместо того, чтобы создать свой собственный метод входа(), здесь:

https://forums.meteor.com/t/angular2-meteor-redirect-after-successful-login-for-custom-login-form/19312