我在从数据库中获取数据时遇到了一些问题。我希望每次用户按下按钮时执行一个方法来获取数据,但是某些东西无法正常工作。
我的代码:
constructor (private cynomysService: CynomysService, private route: ActivatedRoute, private _router: Router ){
...
//THESE ARE THE SERVICES I'M EXECUTING WHEN MY COMPONENT IS LOADED.
this.getFavPubli().subscribe((s) => {this.colorearFav()});
this.getDestPubli().subscribe((s) => {this.colorearDest()});
}
我将仅使用其中一种方法给出示例,因为它们都具有相同的代码。
getFavPubli() {
return this.cynomysService.getFavoritoPublicacion(localStorage.getItem('usuario')).map((fp) => {this.favoritoPublicacion = fp});
}
addFavorite() {
this.favoritos = this.publicacionRecibida[0].favoritos;
this.idRecibido = this.publicacionRecibida[0].idPublicaciones;
let comprobarFavorito = this.favoritoPublicacion.filter(favorito => {
return favorito.publicacion == this.route.snapshot.params['id']});
if(comprobarFavorito.length) {
let variable = comprobarFavorito[0];
if(variable.deleted == 0) {
this.cynomysService.deleteFavPubli(variable.id_favorito_publicacion).subscribe((f) => {this.getFavPubli().subscribe()});
} else if(variable.deleted == 1) {
this.cynomysService.deleteFavPubli(variable.id_favorito_publicacion).subscribe((f) => {this.getFavPubli().subscribe()});
}
} else if(!comprobarFavorito.length) {
let newFavUser = {
publicacion: this.idRecibido,
usuario: localStorage.getItem('usuario'),
deleted: 0
};
var json = JSON.stringify(newFavUser);
this.cynomysService.addFavoriteUser(json).subscribe((f) => {this.getFavPubli()});
}
}
技术上我执行在函数中到处调用服务的方法:如果我插入新的收藏夹,我启动该方法。如果我将收藏夹更新为已删除,我将启动该方法。如果我将收藏夹更新为未删除,我也会执行该服务...但仍然这样做,第一次加载组件时(当数据库中的表为空时)我按下收藏夹按钮它会插入收藏夹点击...
你能帮忙吗?谢谢!