1

Ionic 2 を使用していますが、バージョン 2.0.0 以降のプロバイダー/インジェクションに問題があります。私が取得し続けるエラーは次のとおりです(これだけでなく、さまざまなプロバイダーで):

キャッチされないエラー: LoginRedirectService のすべてのパラメーターを解決できません: (App、?、AlertController)。

プロバイダはすべて @Injectable で装飾されていますが、プロバイダのインジェクションの解決に問題があるようです。

1 つのファイル

@Injectable()
export class LoginRedirectService {

    constructor(
        public app:App, 
        //another provider, needed within this one - this cannot be resolved
        public authService: AuthenticationService,
        public alert:AlertController
    )
//...
}

別のファイル

@Injectable()
export class AuthenticationService {
    constructor(public dataService:DataService){
        //...
    }
}

//...

等々。

また、app.module.ts にすべてのプロバイダーを、注入する必要がある順序で追加しました。

//Ordered by dependencies, bottom is the most dependent on others
providers: [
    HttpModule,
    JsonpModule,
    RssService,
    EmergencyEmailService,
    InAppBrowserService,
    ExternalBrowser,
    AppLauncherService,
    LauncherPlaner,
    LauncherSkype,
    ConnectivityService,
    MockRemoteDataService,
    SoniaMirthRemoteDataService,
    DataService,
    AuthenticationService,
    LoginRedirectService,
    NewsStreamService,
    SoniaBootstrapService
]

私のプロジェクト構造は次のようになります。

  • ソース
    • アプリ
      • app.module.ts
      • app.component.ts
    • 資産
    • ページ
    • プロバイダー
      • サブフォルダ
    • ...
  • package.json など

必要なクラスのコンストラクターで @Inject を明示的に呼び出してみましたが、どちらも成功しませんでした。

私は本当に何をすべきかについての考えがありません。助けに感謝します、ありがとう

4

1 に答える 1

0

modules are not providers they reside in imports. Try above given by @peeskillet

于 2016-10-25T11:41:13.133 に答える