【问题标题】:Can't resolve all parameters for MyApp无法解析 MyApp 的所有参数
【发布时间】:2019-09-17 00:27:42
【问题描述】:

很抱歉,这似乎与其他问题重复,因为它们无助于解决我的问题。有人可以帮我弄这个吗?我试过一个一个去掉参数,还是不行。

Can't resolve all parameters for MyApp: (?, ?, ?, ?, ?, ?).

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 { Subscription } from 'rxjs';

import { GlobalService } from '../services/global-service';

import { TabsPage } from '../pages/tabs/tabs';

import { File } from '@ionic-native/file';
import { Insomnia } from '@ionic-native/insomnia';

@Component({
  templateUrl: 'app.html'
})
export class MyApp{

  constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen, private global : GlobalService,
              private file: File, private insomnia: Insomnia){}
}

app.module.ts

import { MyApp } from './app.component';
import { Platform } from 'ionic-angular';
import { GlobalService } from '../services/global-service';
import { UserService } from '../services/user-service';

import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { File } from '@ionic-native/file';
import { FileTransfer } from '@ionic-native/file-transfer';
import { Insomnia } from '@ionic-native/insomnia';
import { Network } from '@ionic-native/network';
import { MusicControls } from '@ionic-native/music-controls';


@NgModule({
  declarations: [
    MyApp,
    ...
  ],
  imports: [
    ...
  ],
  bootstrap: [...],
  entryComponents: [
    MyApp
  ],
  providers: [
    Platform,
    StatusBar,
    SplashScreen,
    Insomnia,
    File,
    FileTransfer,
    Network,
    MusicControls,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    GlobalService,
    UserService,
    { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig }
  ]
})
export class AppModule {}

services/global-service.ts

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Subject } from 'rxjs/Subject';
import { File } from '@ionic-native/file';
import { Platform } from 'ionic-angular';
import * as SoundFont from 'soundfont-player';
import * as Firebase from 'firebase';
import 'firebase/firestore';

import 'rxjs/Rx';

@Injectable()
export class GlobalService {..}

似乎根本找不到我的错误的根本原因。我正在使用 Ionic 3.9.2、Angular Core 5.2.9、Node 6.10.2。我的 node_modules 或我的某些配置可能有问题吗?

【问题讨论】:

  • 您是否缺少作为提供商的平台?
  • 添加了,还是一样的错误。 @SimplyGed
  • 您将其添加为导入?您能否更新您的问题以显示您的更改?
  • 是的,将其添加为导入。同样的错误。见上面编辑@SimplyGed
  • 如果把参数一一去掉,是哪一个报错?

标签: angular typescript ionic-framework ionic3


【解决方案1】:

您没有提供 Platform 作为提供者。

import { MyApp } from './app.component';
import { GlobalService } from '../services/global-service';
import { UserService } from '../services/user-service';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { File } from '@ionic-native/file';
import { FileTransfer } from '@ionic-native/file-transfer';
import { Insomnia } from '@ionic-native/insomnia';
import { Network } from '@ionic-native/network';
import { MusicControls } from '@ionic-native/music-controls';


@NgModule({
  declarations: [
    MyApp,
    ...
  ],
  imports: [
    ...
  ],
  bootstrap: [...],
  entryComponents: [
    MyApp
  ],
  providers: [
    Platform,
    StatusBar,
    SplashScreen,
    Insomnia,
    File,
    FileTransfer,
    Network,
    MusicControls,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    GlobalService,
    UserService,
    { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig }
  ]
})
export class AppModule {}

简单地说Can't resolve all parameters for MyApp: (?, ?, ?, ?, ?, ?). 的意思是你的应用的构造函数所期望的所有参数都没有得到满足。

编辑

您的App 组件上可能缺少应用根选择器。

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 { Subscription } from 'rxjs';

import { GlobalService } from '../services/global-service';

import { TabsPage } from '../pages/tabs/tabs';

import { File } from '@ionic-native/file';
import { Insomnia } from '@ionic-native/insomnia';

@Component({
  selector: 'app-root',
  templateUrl: 'app.html'
})
export class MyApp{

  constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen, private global : GlobalService,
              private file: File, private insomnia: Insomnia){}
}

【讨论】:

  • 您在其他评论中说您已导入 Platform 但您尚未更新答案中的导入。您已将其添加为提供程序,但未将其导入到类中。请检查并更新您的问题。
  • 您的 App Component 上不是缺少 selector: 'app-root', 吗? - 更新答案
  • 试过了。还是不行。还尝试添加 selector: 'ion-app'(这是一个 Ionic 项目),nada。
  • 经过一番研究,不要以为你在Global Service中有循环依赖?
  • 首先从MyApp constructor 中删除所有参数并从那里取出
【解决方案2】:

您是否编辑了 index.html ?

如果您这样做了,请撤消更改或确保构建文件的顺序为 polyfills.js, vendor.js and main.js,因为我确实尝试重现此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 2017-09-26
    • 2018-03-24
    • 1970-01-01
    • 2016-11-27
    • 2018-05-16
    相关资源
    最近更新 更多