2016-11-02 2 views
0

으로 나는 ng2-admin 테마에서 다음 스피너를 사용하고 있습니다. 전체 응용 프로그램에서 어떻게 사용할 수 있습니까?사용하여 회 전자는 글로벌 서비스

+0

각 고객으로부터 가져 오기에는 주로 종속성이 호출되는 몇 가지 이점이 있습니다. 'import {SpinnerService} from ...'줄을 사용하지 않고 이것을 찾아서 바꾸는 것을 상상해 보라. – ssube

+0

하지만 앱의 특정 스피너 서비스는 일반적으로 모든 구성 요소에서 동일합니다. 변경되면 전체 앱이 업데이트됩니다. – FacundoGFlores

답변

1

당신은

export class BaseView { 

    protected _injector:Injector; 

    protected _spinnerService:SpinnerService; 

    constructor() { 
     let providers = ReflectiveInjector.resolve([SpinnerService]); 
     this._injector = ReflectiveInjector.fromResolvedProviders(providers); 
    } 

    get spinnerService(): SpinnerService { 
     if (this._spinnerService == null) { 
      this._spinnerService = this._injector.get(SpinnerService); 
     } 
     return this._spinnerService; 
    } 
} 

같은 게터를 기본 구성 요소를 만들고 넣을 수 있습니다 그것을 사용 :

this.spinnerService.show() 

ReflectiveInjector이 각도/핵심 @안에 발견 될 수

문서 : https://angular.io/docs/ts/latest/api/core/index/ReflectiveInjector-class.html

+0

appInjector는 무엇입니까? 어디에서 가져 오시겠습니까? – FacundoGFlores

+0

@FacundoGFlores'@ Anger/Core '에서 가져 오기 {Injector}; –

+0

@FacundoGFlores 답변을 업데이트했습니다. 정보를위한 서비스 검색 패턴임을 기억하십시오. –

관련 문제