2017-10-04 2 views
0

Ich bin gerade durch ein Beispiel für das Erstellen einer ionischen App. Wenn ich die App jedoch dienen bekomme ich diesen Fehler,Kein Anbieter für UrlHelperService

Error: No provider for UrlHelperService! 
at injectionError (http://localhost:8100/build/vendor.js:1527:90) 
at noProviderError (http://localhost:8100/build/vendor.js:1565:12) 
at ReflectiveInjector_._throwOrNull (http://localhost:8100/build/vendor.js:3007:19) 
at ReflectiveInjector_._getByKeyDefault (http://localhost:8100/build/vendor.js:3046:25) 
at ReflectiveInjector_._getByKey (http://localhost:8100/build/vendor.js:2978:25) 
at ReflectiveInjector_.get (http://localhost:8100/build/vendor.js:2847:21) 
at resolveNgModuleDep (http://localhost:8100/build/vendor.js:9847:25) 
at _createClass (http://localhost:8100/build/vendor.js:9898:32) 
at _createProviderInstance$1 (http://localhost:8100/build/vendor.js:9858:26) 
at resolveNgModuleDep (http://localhost:8100/build/vendor.js:9843:17) 

mein app.module.ts

import { NgModule, ErrorHandler } from '@angular/core'; 
import {HttpModule} from '@angular/http'; 

import { BrowserModule } from '@angular/platform-browser'; 
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; 
import { MyApp } from './app.component'; 

import { AboutPage } from '../pages/about/about'; 
import { ContactPage } from '../pages/contact/contact'; 
import { HomePage } from '../pages/home/home'; 
import { TabsPage } from '../pages/tabs/tabs'; 

import { StatusBar } from '@ionic-native/status-bar'; 
import { SplashScreen } from '@ionic-native/splash-screen'; 
import {LoginPage} from "../pages/login/login"; 
import {OAuthService} from "angular-oauth2-oidc"; 


@NgModule({ 
    declarations: [ 
    MyApp, 
AboutPage, 
ContactPage, 
HomePage, 
TabsPage, 
LoginPage 
    ], 
    imports: [ 
    BrowserModule, 
    HttpModule, 
    IonicModule.forRoot(MyApp) 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
    MyApp, 
AboutPage, 
ContactPage, 
HomePage, 
TabsPage, 
LoginPage ], 
     providers: [ 
    OAuthService, 
    StatusBar, 
    SplashScreen, 
    {provide: ErrorHandler, useClass: IonicErrorHandler} 
    ] 
}) 
export class AppModule {} 

mein app.component.ts

import { Component } from '@angular/core'; 
import { Platform } from 'ionic-angular'; 
import { StatusBar } from '@ionic-native/status-bar'; 
import { SplashScreen } from '@ionic-native/splash-screen'; 

import { TabsPage } from '../pages/tabs/tabs'; 
import { OAuthService } from 'angular-oauth2-oidc'; 
import { LoginPage } from '../pages/login/login'; 

@Component({ 
    templateUrl: 'app.html' 
}) 
export class MyApp { 
    rootPage:any = TabsPage; 

    constructor(platform: Platform, statusBar: StatusBar, splashScreen: 
SplashScreen, oauthService: OAuthService) { 
    if (oauthService.hasValidIdToken()) { 
     this.rootPage = TabsPage; 
    } else { 
     this.rootPage = LoginPage; 
    } 
    platform.ready().then(() => { 

    statusBar.styleDefault(); 
    splashScreen.hide(); 
    }); 
    } 
} 

Ich bin mit Ionic Rahmen : 3.7.0 Ionic App Skripts: 3.0.0 Eckiger Kern: 4.4.3 Angular Compiler CLI: 4.4.3 Knoten: 6.11. 0 OS Plattform: Windows 10 Navigator Plattform: Win32

+0

Bei der Verwendung eines Service importieren muss, importieren ein '@ ngModule' muss {...} von '...' dann listet es unter 'providers: [...]' –

+0

Wo ist dein UrlHelperService? – Melchia

+0

@Melchia der UrlHelperService ist im OAuthService enthalten Ich dachte – jamesim

Antwort

1

Dieser Fehler erscheint, wenn Sie einen Dienst verwenden (In Ihrem Fall UrlHelperService) in Ihrer Anwendung, aber sie haben es nicht zu providers hinzugefügt.

Vergewissern Sie sich, wenn Sie alle Dienste in Ihrer Anwendung erstellen und verwenden Sie sie in providers in @NgModule

import { SomeService } from "../services/some-service.service"; 

@NgModule({ 
     declarations: [ // Components ], 
     imports: [ // Modules ], 
     bootstrap: [IonicApp], 
     entryComponents: [// Entry Components], 
     providers: [ SomeService ] // <==== HERE 
}) 
export class AppModule {} 
+0

Wow, das war offensichtlich .... Danke – jamesim