mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-16 18:17:31 +08:00
fix(angular): setup config provider correctly
This commit is contained in:
2831
angular/package-lock.json
generated
2831
angular/package-lock.json
generated
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';
|
||||
import { ModuleWithProviders, NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
|
||||
import * as c from './directives';
|
||||
@ -6,7 +6,6 @@ import * as d from './directives/proxies';
|
||||
import * as p from './providers';
|
||||
import { setupConfig } from '@ionic/core';
|
||||
|
||||
|
||||
const DECLARATIONS = [
|
||||
// proxies
|
||||
d.App,
|
||||
@ -107,7 +106,7 @@ const DECLARATIONS = [
|
||||
c.VirtualFooter,
|
||||
c.VirtualHeader,
|
||||
c.VirtualItem,
|
||||
c.VirtualScroll,
|
||||
c.VirtualScroll
|
||||
];
|
||||
|
||||
const PROVIDERS = [
|
||||
@ -120,30 +119,28 @@ const PROVIDERS = [
|
||||
p.NavController,
|
||||
p.Platform,
|
||||
p.Events,
|
||||
p.DomController,
|
||||
p.Config
|
||||
p.DomController
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
declarations: DECLARATIONS,
|
||||
exports: DECLARATIONS,
|
||||
providers: [
|
||||
p.AngularDelegate,
|
||||
p.ModalController,
|
||||
p.PopoverController,
|
||||
],
|
||||
imports: [
|
||||
CommonModule,
|
||||
]
|
||||
providers: [p.AngularDelegate, p.ModalController, p.PopoverController],
|
||||
imports: [CommonModule]
|
||||
})
|
||||
export class IonicModule {
|
||||
static forRoot(config?: {[key: string]: any}): ModuleWithProviders {
|
||||
setupConfig(config);
|
||||
static forRoot(config?: { [key: string]: any }): ModuleWithProviders {
|
||||
return {
|
||||
ngModule: IonicModule,
|
||||
providers: PROVIDERS
|
||||
providers: [
|
||||
...PROVIDERS,
|
||||
{ provide: p.ConfigToken, useValue: config },
|
||||
{
|
||||
provide: p.Config,
|
||||
useFactory: setupConfig,
|
||||
deps: [p.ConfigToken, p.Platform]
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export const ConfigToken = new InjectionToken<any>('USERCONFIG');
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { Config as CoreConfig } from '@ionic/core';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { InjectionToken } from '@angular/core';
|
||||
|
||||
@Injectable()
|
||||
export class Config {
|
||||
|
||||
get(key: string, fallback?: any): any {
|
||||
@ -21,6 +20,8 @@ export class Config {
|
||||
}
|
||||
}
|
||||
|
||||
export const ConfigToken = new InjectionToken<any>('USERCONFIG');
|
||||
|
||||
function getConfig(): CoreConfig {
|
||||
const Ionic = (window as any).Ionic;
|
||||
if (Ionic && Ionic.config) {
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
export { AngularDelegate } from './angular-delegate';
|
||||
export { ActionSheetController } from './action-sheet-controller';
|
||||
export { AlertController } from './alert-controller';
|
||||
@ -12,4 +11,4 @@ export { PopoverController } from './popover-controller';
|
||||
export { ToastController } from './toast-controller';
|
||||
export { NavController } from './nav-controller';
|
||||
export { DomController } from './dom-controller';
|
||||
export { Config } from './config';
|
||||
export { Config, ConfigToken } from './config';
|
||||
|
Reference in New Issue
Block a user