我的service.ts
中有一个函数用于将数据推送到我的firebase。我制作了更多变量来存储数学计算的结果。它们是可变的,用于存储提交者的数量和他们选择的选项。当第一次加载localhost:4200
和我提交了1名男性和1名女性时,我每人都有50%。问题是,当我重新加载localhost:4200
页面并提交另一个数据时(例如我再增加1个男性),结果/比率再次重置为0(并成为100% male
和0% female
)。我没有删除我的firebase中的数据。
//service.ts
selectedData: App = new App();
dataList: AngularFireList < any > ;
getData() {
this.dataList = this.firebase.list('data');
return this.dataList;
}
percentList: AngularFireList < any > ;
getPercent() {
this.percentList = this.firebase.list('percent');
return this.percentList;
}
male: number = 0;
female: number = 0;
percentMale: number = 0;
percentFemale: number = 0;
insertData(data: App) {
this.dataList.push({
nama: data.nama,
email: data.email,
gender: data.gender,
});
if (data.gender == 'Male') {
this.male++;
} else if (data.gender == 'Female') {
this.female++;
}
this.percentMale = this.male / (this.male + this.female) * 100,
this.percentFemale = this.female / (this.male + this.female) * 100,
this.percentList.update("percentKey", {
male: this.male,
female: this.female,
percentMale: this.percentMale,
percentFemale: this.percentFemale,
//percentMale: this.percentMale = this.male/(this.male+this.female)*100,
//percentFemale: this.percentMale = this.male/(this.male+this.female)*100,
});
console.log('percentMale', this.percentMale + '%');
console.log('percentFemale', this.percentFemale + '%');
}
<!-- begin snippet: js hide: false console: true babel: false -->
如果我删除变量上的=0
,则会返回错误First argument contains NaN in property
。
//component.ts
ngOnInit() {
var x = this.AppService.getData();
x.snapshotChanges().subscribe(item => {
this.dataList = [];
item.forEach(element => {
var y = element.payload.toJSON();
y["$key"] = element.key;
this.dataList.push(y as App);
});
});
var q = this.AppService.getPercent();
q.snapshotChanges().subscribe(item => {
this.percentList = [];
item.forEach(element => {
var w = element.payload.toJSON();
w["$key"] = element.key;
this.percentList.push(w as App);
});
});
}
this.AppService.insertData(this.AppService.selectedData);
如果需要更多代码段,请与我们联系。先谢谢你。