2016-06-01 1 views
1

로그인 구성 요소을 내 응용 프로그램에 각도 2 버전 rc-1로 코딩하려고합니다. 그러나 버튼을 누르지 않고도 내 모달을 열 수있는 방법은입니다.인증 팝업 또는 모달을 각도 2로 여는 방법

내 앱을로드 할 때 사용자가 로그인했는지 여부 (localStorage 포함)를 확인합니다. 로그인하지 않은 경우 로그인 모드를 열어야했습니다.

열기/닫기 모달 은 동작 버튼이 아닌 부울 매개 변수에 의해 조건부가 지정됩니다.

단추 동작없이 로그인 모달을 열려면 어떻게해야합니까? 사전에

감사합니다,

+0

부트 스트랩 모달 구성 요소입니까? – rinukkusu

+0

모달 div에서'ngIf'를 사용하여 전체 div를 표시하거나 숨길 수 있습니다. – nu11p01n73R

+0

부트 스트랩 모달과 primeng 모달을 사용하지만 둘 다 내 필요를 충족시키지 못합니다. 내 로그인 구성 요소는 독립 구성 요소이므로 App 구성 요소에 가져 왔습니다! 나는'ngIf'를 사용하려고했지만 매개 변수가 true 일뿐만 아니라 작동하지 않습니다. – youza

답변

1

당신이 당신의 모달을 보유하고 구성 요소를 가지고 있다고 할 수 있습니다.

export class YourModalComponent { 
    constructor() {} 

    public open(): void { 
    //show modal 
    } 
} 

그리고는 로컬 스토리지를 확인하고 어린이와 같은 YourModalComponent가있는 구성 요소가 있습니다. 사용자가 로그인 한 경우 modal.open()으로 전화하십시오.

export class YourParentComponent { 
    @ViewChild(YourModalComponent) 
    public yourModal : YourModalComponent; 

    constructor() {} 

    public ngAfterViewInit(): void { 
    //check if user is logged in 
    if(!userIsLoggedIn) { 
     this.yourModal.open(); 
    } 

    } 
} 

는 또한 div가이 조건을 충족하는 경우에만 표시됩니다 ngIf 그래서 YourModalComponent로 표시 할 수 있습니다.

+0

이 솔루션을 사용합니다. 우리는 목표에 가깝지만 예외가 있습니다 : 예외 : TypeError : 'open'of undefined' 속성을 읽을 수 없습니다! 'userIsLoggedIn'에서 조건을 제거하면 작동합니다 : 모달이 열려 있습니다! – youza

+0

사용자가 로그인 한 경우 어떻게 확인합니까? –

+0

'Export 클래스 AppComponent는 OnInit을 구현합니다. { @ViewChild (LoginComponent) 모달 : LoginComponent; isLoggedIn : 부울 = 거짓; 생성자 (개인 인증 : 인증 서비스) { this.isLoggedIn = this.auth.isLoggedin(); console.log (this); } 공공 ngOnInit() : 무효 { // 사용자가 로그인되어 있는지 확인 (! this.isLoggedIn)의 경우 { this.open(); } } close() { this.modal.close(); } open() { this.modal.open(); } } – youza

관련 문제