对于从服务调用离子组件而不是分别在每个.ts文件中分别导入每个组件的可能效率,我有一个普遍的问题。
例如,我经常使用ToastController
和AlertController
,并且为了简化起见,我最近开始在我的服务中放置该函数,但是我不确定理想情况下是更好还是更坏用于我的应用程序。
示例代码:
service.ts
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/interval';
import { Subscription } from 'rxjs/Subscription';
import {ToastController, LoadingController } from 'ionic-angular';
import { AppVersion } from '@ionic-native/app-version';
@Injectable()
export class ReapService {
constructor(public loadingCtrl:LoadingController,
public toast: ToastController,
public network: Network,
public storage: Storage,
public appVersion: AppVersion){}
presentToast(msg) {
let toast = this.toast.create({
message: msg,
duration: 3000,
position: 'bottom',
dismissOnPageChange: false,
cssClass: 'customToast'
});
toast.onDidDismiss(() => {
//console.log('Dismissed toast');
});
toast.present();
}
}
另一个.ts文件
onLogout(){
this.reap.formStart = null;
this.reap.token = "";
this.storage.clear();
const loading = this.loadingCtrl.create({
content: 'Logging Out...'
});
loading.present();
setTimeout(() => {
this.reap.removeConnections();
//Where I call the toast controller
this.reap.presentToast('Logged Out');
this.navCtrl.popToRoot();
loading.dismiss();
}, 2000);
}
我只是想确保对于该应用程序可行,并且如果我开始使用类似于Toast的其他组件,则可能会更有效率。到目前为止,我知道不必在每个所需的.ts文件中导入该组件,从而节省了时间。使用它。