2017-12-14 1 views
0

내 페이지에서 ionic LoadController를 구현했습니다. 로드 대화 상자를 표시하려면 나는 방법합니다외부에서 LoadingController를 사용할 수 있습니까?

public presentLoading(text: string, timeout: number) { 
    if (!this.loading) { 
     this.loading = this.loadingCtrl.create({ 
     content: text, 
     dismissOnPageChange: true 
     }); 
     this.loading.present(); 
     setTimeout(() => { 
     this.closeLoading(); 
     }, timeout); 
    } 
    } 

가 지금은 좋은, 그러나 나는 또한 다른 페이지에 대화를로드 싶지만 코드를 복제하고 다른 페이지에 다시 기록 할 돈`t. 다음과 같이 정적 메서드를 만드는 것이 좋습니다 :

public static presentLoading(loading: Loading, loadingCtrl: LoadingController, text: string, timeout: number) 

은 추합니다. 아니면 다른 방법 :

public loading: Loading 

constructor(public loadingCtrl: LoadingController) { } 

public presentLoading(text: string, timeout: number) { ... } 

는 MyLoadingController를 작성하고 어떻게 든 그것을 인스턴스화 할 내 페이지에 주입하는 다른 방법이 있습니까?

+1

기능을 공급자에게 옮기고 사방에 주사하는 것을 막는 요인은 무엇입니까? –

+0

저는 각도와 이온으로 초보자입니다. Provider에서 함수를 옮기면 LoadController가 초기화됩니까? – FAndrew

+0

당신은 단지 provider에 loadingController를 주입 할 것입니다. –

답변

0
  • 새로운 서비스는
  • 그것을 constructor(private loadingCtrl: LoadingController) { }
  • 를 주입 로딩 컨트롤러가
  • 당신이 마지막으로 내가 할
0

를 사용하려는 새로운는 죽을을 주입에 메서드를 추가 MyLoadingController라고 만들기 . LoadingController를 확장 한 CommonLoadingController를 만들고 거기에 내 메서드를 추가하고 app.module.ts에 공급자로 추가합니다. 이제는 생성자 어디서나 사용할 수 있습니다.

관련 문제