我通过复制旧版beta11项目的文件开始了一个新的离子2 rc0应用程序。我按照
中的描述做了必要的步骤将项目复制到新项目:ionic 2 rc0 changelog
现在最终在我运行
后不再出现编译器错误ionic run android -c
我刚在Android手机上获得 whitescreen 。
Chrome调试正在记录我
未捕获错误:没有提供商!
当我跑步时
ionic serve -c
firefox 会记录我
未处理承诺拒绝:没有ConnectionBackend的提供商! ; 区域:;任务:Promise.then;值:对象{...
app.module.ts 看起来像:
import { NgModule } from '@angular/core';
import { IonicApp, IonicModule } from 'ionic-angular';
import { MyApp } from './app.component';
import { Storage } from '@ionic/storage'; // special thing
import { Http } from '@angular/http';#
// other imports ....
@NgModule({
declarations: [
MyApp,
// PAGES
// MODALS
// CUSTOM COMPONENTS
// DIRECTIVES
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
// PAGES
// MODALS
],
providers: [
Storage,
Http,
// SERVICES/PROVIDERS
]
})
export class AppModule {}
我猜测某个地方的提供商有问题,但我无法找到解决方案......
系统: ubuntu 16.04 / node v6.7.0 / npm v3.10.3
编辑:
我用
开始了一个新的sidemenu项目ionic start debugProject sidemenu --v2
我这样做是为了通过顺序添加原始Project的提供程序来调试提供程序。看来,当我在 app.components.ts
的构造函数中注入名为" Config" 的第一个提供程序时import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from 'ionic-native';
import { TabsPage } from '../pages/tabs/tabs';
// PROVIDERS -> providers
import { Config } from '../providers/config/config';
@Component({
template: `<ion-nav [root]="rootPage"></ion-nav>`
})
export class MyApp {
rootPage = TabsPage;
constructor(
platform : Platform,
config : Config <-------------(HERE !!! )
) { .....
我像以前一样得到错误消息:
未处理承诺拒绝:没有ConnectionBackend的提供商! ; 区域:;任务:Promise.then;值:对象{...
config.ts
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
// providers
import { Http } from '@angular/http';
//import { DB } from '../db/db';
@Injectable()
export class Config {
public data : any;
constructor(
public http : Http,
//public db : DB
){
this.data = {};
}
loadDefault() {
this.data = {
..........................
// DATA OBJECT DEFINITIONS
...........................
};
return Promise.resolve("default settings applied");
}
loadSettingsFromDB(){
return Promise.resolve("no local settings from db for now");
}
// TODO: send settings to server
saveSettingsToDB(settings){
return Promise.resolve("cant save settings for now");
}
handleError(err) : void {
// error stacktrace gets returned on development mode
try{
err = err.json();
}catch(e){}
var msg = err.message || "LOADING ERROR";
if(err.error){
msg += err.error;
//Toast.showLongBottom(msg).subscribe();
}else{
//Toast.showShortBottom(msg).subscribe();
}
console.log("ERROR in config.ts");
console.log(msg);
console.log(err);
}
}
任何想法?如果没有,有关在github上打开新问题的经验吗?
答案 0 :(得分:1)
我找到了解决方案。似乎我不能/不应该在 app.modules.ts 中的providers数组中使用Http模块(在beta11中这不是问题)。我的Config模块依赖于Http,因此在构造Config之后,应用程序错误(没有ConnectionBackend的提供程序)被触发......