共计 1116 个字符,预计需要花费 3 分钟才能阅读完成。
背景: 复宏汉霖我的项目 CR 做完后. 来整顿下须要优化的中央和给其余页面发送音讯知识点.
优化我的项目启动工夫
先记一下: 最开始运行的时候所需工夫:
删完 99% 的 console.log 和解决掉所有 tslint 的报错后我的项目跑起来的工夫:
整整少了14.78s. 真得不要小看 console.log…
发送音讯
理论开发场景 : 以后登录人的信息是保留在主页面的. 最开始登陆进去的时候存入主页面的, 而后其余页面用到的人员信息是主页面传进去的. 在其中一个模块批改了人员岗位后. 主页面没有从新获取人员信息. 则会导致其余模块的信息有误.
解决思路: 在其中一个模块批改了人员岗位后, 给主页面传一个音讯. 通知它须要从新获取登录人的信息.(其余任意页面都能通过 Events 获取到这个音讯)
// 批改人员岗位的模块代码内容:
import {Events} from 'ionic-angular';
export class SetupPage {constructor(public ev: Events){}
// 岗位切换
chooseJob = ()=>{if (this.territoryList.length <= 1) {return;}
let modal = this.modalCtrl.create("ChooseJobPage", { jobList:this.territoryList ,territoryID},{cssClass: 'inset-modal'});
modal.onDidDismiss(data => {if (data.action == 'save') {
// 在岗位切换胜利后通知主页面要从新获取人员信息
// 利用 this.ev.publish('selectedStff')发消息.
this.staffService.SelectedTerritoryToken(json).then((info) => {this.ev.publish('selectedStff')})}
});
modal.present();}
}
// 主页面代码内容:
import {Events} from 'ionic-angular';
export class MyApp {constructor(public ev: Events){
// 接管到音讯后, 去调取获取人员信息接口
ev.subscribe("selectedStff", () =>{this.getStaffInfo();
})
}
// 获取以后用户信息
getStaffInfo = () => this.staffService.GetStaffInfo().then((info) => {
// 从新赋值人员信息
this.currentStaff = info;
});
}
正文完