かなり一般的な問題のようです。私は、サービス2にサービス1を使用したいと私は他のコンポーネントサービス2での注射のようだにもかかわらず、例外[...]のすべてのパラメータを解決できません。
Error: Can't resolve all parameters for ILIASRestProvider: (Http, ?).
を取得します。 emitDecoratorMetadataがngModule のプロバイダの一部で真
- @Injectableやサービス2
- :そして、私は一緒にすべてを持っていると思います
全く問題がある場合:Ionic 2 RC0アプリケーションを構築しています。ここで重要なファイルは、以下のとおりです。
は
import { NgModule } from '@angular/core'; import { IonicApp, IonicModule } from 'ionic-angular'; import { MyApp } from './app.component'; import {AppConfig} from "../config/app-config"; import {ConnectionService} from "../services/ilias-app.service"; import {ILIASRestProvider} from "../providers/ilias-rest.provider"; import {MigrationsService} from "../services/migrations.service"; import {FooterToolbarService} from "../services/footer-toolbar.service"; import {ObjectListPage} from "../pages/object-list/object-list"; import {FavoritesPage} from "../pages/favorites/favorites"; import {NewObjectsPage} from "../pages/new-objects/new-objects"; import {SettingsPage} from "../pages/settings/settings"; import {InfoPage} from "../pages/info/info"; import {LogoutPage} from "../pages/logout/logout"; import {SynchronizationService} from "../services/synchronization.service"; import {DataProvider} from "../providers/data-provider.provider"; import {FileService} from "../services/file.service"; import {DataProviderFileObjectHandler} from "../providers/handlers/file-object-handler"; import {TranslatePipe} from "ionic-angular/index"; import {FileSizePipe} from "../pipes/fileSize.pipe"; import {HttpModule, Http} from '@angular/http'; import {TranslateModule} from 'ng2-translate/ng2-translate'; import {TranslateLoader} from "ng2-translate/src/translate.service"; import {TranslateStaticLoader} from "ng2-translate/src/translate.service"; @NgModule({ declarations: [ MyApp, ObjectListPage, FavoritesPage, NewObjectsPage, SettingsPage, InfoPage, LogoutPage, FileSizePipe, TranslatePipe ], imports: [ HttpModule, IonicModule.forRoot(MyApp, {prodMode: window.hasOwnProperty('cordova')}), TranslateModule.forRoot({ provide: TranslateLoader, useFactory: (http: Http) => new TranslateStaticLoader(http, '/assets/i18n', '.json'), deps: [Http] }) ], bootstrap: [IonicApp], entryComponents: [ MyApp, ObjectListPage, FavoritesPage, NewObjectsPage, SettingsPage, InfoPage, LogoutPage ], providers: [ AppConfig, ConnectionService, //<----------------------- MigrationsService, ILIASRestProvider, //<------------------------- FooterToolbarService, DataProvider, FileService, SynchronizationService, DataProviderFileObjectHandler ] }) export class AppModule {}
ILIAS-rest.provider.ts
@Injectable() export class ILIASRestProvider { public constructor(private http:Http, public app:ConnectionService) { } ... }
ILIAS-app.service.ts
@Injectable() export class ConnectionService { ... constructor(public _config:AppConfig) { this._database = SQLiteDatabaseService.instance(); } ... }
をapp.module.ts app-config.ts
それは理想的な方法ですので、私はお勧めし@Injectable() export class AppConfig { protected data:any = {}; constructor(public http:Http) { } ... }
イオンセットアップ
Your system information: Cordova CLI: 5.4.1 Ionic Framework Version: 2.0.0-rc.0 Ionic CLI Version: 2.1.0 Ionic App Lib Version: 2.1.0-beta.1 OS: Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Node Version: v6.6.0
「../ services/ilias-app.service」;からの 'import {ConnectionService}のインポートは正しいですか? –
こんにちは、それは正しいです、私は絶望の行為でクラスの名前を変更しようとしました。 – Oskar
疑わしいと思われるものは見たことがありません。 –