Angular2 Ionic2无法解析GameServiceProvider的所有参数:(?) [英] Angular2 Ionic2 Can't resolve all parameters for GameServiceProvider: (?)

查看:445
本文介绍了Angular2 Ionic2无法解析GameServiceProvider的所有参数:(?)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Runtime Error
Can't resolve all parameters for GameServiceProvider: (?).

Error: Can't resolve all parameters for GameServiceProvider: (?).
    at syntaxError (http://localhost:8100/build/main.js:78899:34)
    at CompileMetadataResolver._getDependenciesMetadata (http://localhost:8100/build/main.js:92236:35)
    at CompileMetadataResolver._getTypeMetadata (http://localhost:8100/build/main.js:92104:26)
    at CompileMetadataResolver._getInjectableMetadata (http://localhost:8100/build/main.js:92090:21)
    at CompileMetadataResolver.getProviderMetadata (http://localhost:8100/build/main.js:92380:40)
    at http://localhost:8100/build/main.js:92309:49
    at Array.forEach (<anonymous>)
    at CompileMetadataResolver._getProvidersMetadata (http://localhost:8100/build/main.js:92270:19)
    at CompileMetadataResolver.getNonNormalizedDirectiveMetadata (http://localhost:8100/build/main.js:91700:30)
    at CompileMetadataResolver._getEntryComponentMetadata (http://localhost:8100/build/main.js:92357:45)

我有两个供应商机器人和游戏服务
这是我在提供商/游戏服务/游戏服务中的游戏服务提供商。

I have two providers bot and game-service
This is my game-service provider inside providers/games-service/game-service.ts

import { Injectable } from '@angular/core';
import { Component } from '@angular/core';
import { BotProvider } from '../bot/bot';
@Component({
  providers: [BotProvider]
})
 @Injectable()
export class GameServiceProvider {
	... vars i have to use some in Botprovider aswell ...
	constructor(public bot: BotProvider){
	}
	... functions ...
}

这是我在提供者/ bot / bot中的僵尸提供者.ts

this is my bot provider inside providers/bot/bot.ts

import { Injectable, Component } from '@angular/core';
import { GameServiceProvider } from '../game-service/game-service';
@Component({
  providers: [GameServiceProvider]
})
@Injectable()
export class BotProvider {
	constructor(public gs: GameServiceProvider) {}
	.. functions ..
}

两者都是通过离子生成提供者创建的{{NAME}}

我的app.compoment.ts

My app.compoment.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 { BotProvider } from '../providers/bot/bot';
import { GameServiceProvider } from '../providers/game-service/game-service';


import { LoginPage } from '../pages/login/login';
import { HomePage } from '../pages/home/home';
@Component({
  templateUrl: 'app.html',
  providers: [GameServiceProvider,BotProvider]
})
export class MyApp {
  rootPage:any = HomePage;

  constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
    platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      statusBar.styleDefault();
      splashScreen.hide();
    });
  }

我的app.module.ts

My app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { MaterialModule } from '@angular/material';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';
import { GooglePlus } from '@ionic-native/google-plus';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { GamePage } from '../pages/game/game';
import { LoginPage } from '../pages/login/login';
import { BotProvider } from '../providers/bot/bot';
import { GameServiceProvider } from '../providers/game-service/game-service';

@NgModule({
  declarations: [
    MyApp,
    HomePage,
    GamePage,
    LoginPage
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp),
    MaterialModule
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage,
    GamePage,
    LoginPage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    GooglePlus,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    BotProvider,
    GameServiceProvider
  ]
})
export class AppModule {}

我应该写另一个提供商,其中只包含提供商需要的东西,或者一个提供商可能有一个提供商构造函数,反之亦然

周末愉快!

Should i write another Provider that contains just the stuff both Provider need or is it possible that one provider has a provider in its constructor and vise versa

Have a nice weekend!

推荐答案

还有更多一个引用 GameServiceProvider 即,


  • AppModule

  • BotProvider

  • MyApp

  • AppModule
  • BotProvider
  • MyApp

删除每个文件中的提供者块并将其全局放在 AppModule

Remove the providers block in each files and have it globally in the AppModule

这篇关于Angular2 Ionic2无法解析GameServiceProvider的所有参数:(?)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆