Lifecyle 을 이용한 구현
Angular 에서는 route 부분에서 guard를 구현해 해당 페이지에 접근가능/불가 를 제어한다. ionic에서는 해당 기능을 lifecycle을 통해 제공하고 있다.
ionViewCanEnter / ionViewCanLeave
NavController에 ionViewCanEnter 와 ionViewCanLeave 는 페이지의 접근 관련제어를 담당하고 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| export class MyClass{ constructor( public navCtrl: NavController ){}
pushPage(){ this.navCtrl.push(DetailPage); }
ionViewCanLeave(): boolean{ if(isValid(CanILeave)){ return true; }else{ return false; } } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| export class MyClass{ constructor( public navCtrl: NavController ){}
pushPage(){ this.navCtrl.push(DetailPage); } }
export class DetailPage(){ constructor( public navCtrl: NavController ){}
ionViewCanEnter(): boolean{ if(isValid(CanIEnter)){ return true; }else{ return false; } } }
|
ionViewCanEnter, ionViewCanLeave 둘 다 boolean/Promise 의 리턴 형태를 가지고 있으므로 형태에 맞게 사용하면 되겟다