ionic 3 - 跨应用程序共享变量的最佳实践是什么



对于 ionic 3 - 跨应用程序共享变量的最佳实践是什么? 例如,如果我有一个泛型变量或泛型数组,并且我希望它在应用程序中的所有源文件中可用,那么最好的方法是什么?

我应该使用提供程序并创建 getter 函数,还是有一些更好和简单的方法来做到这一点,例如 c 中的头文件?

我会遵循核心功能模型的 Angular 文档。这意味着为应用程序范围的单例服务(提供程序(创建一个通用模块。导入这些服务并将其添加到providers列表的位置。 然后只需在AppModule中导入CoreModule,例如将其添加到imports列表中。

核心模块:

import { NgModule } from '@angular/core';
import { IonicModule } from 'ionic-angular';
import { FooService } from './services/foo-service';
import { BarService } from './services/bar-service';
export {
FooService,
BarService
}
@NgModule({
imports: [ 
IonicModule
],
providers: [
FooService,
BarService
]
})
export class CoreModule{}

通过添加

export {
FooService,
BarService
}

您可以从一个文件导入组件中的所有服务,如下所示:

import { FooService, BarService } from '../../core/core-module';

并像往常一样在constructor中注入和使用它们:

constructor(private fooService: FooService, private barService:BarService){}
someFunctionCallingServiceFunction(){
this.fooService.data; // You can access properties
this.fooService.someFunction(); // and functions 
}

我使用的文件结构:

--core/
core.module.ts
--services/
foo.service.ts
bar.service.ts

示例服务:

import { Injectable } from '@angular/core';
@Injectable()
export class FooService {
data:string;
private hiddenData:string; // Can only be used internally
constructor(){ }
someFunction(){
// Does something...
}
// Can only be used internally
private somePrivateFunction(){
// Does something else...
}
}

相关内容

最新更新