Problème fonction de classe renvoie toujours la même chose
Posté : 02 avr. 2021, 01:12
Bonjour, bonsoir ,
Voila je suis actuellement en train de faire un petit projet ou je crée dynamiquement des cocktails et tout ça .
J'ai actuellement mes 2 classes ingrédients et ingrédient:
Donc voila quand je fais mon appel Ajax et que j'ajoute un ingrédient puis quand j'appelle ma fonction get_ingredient() , elle retourne toujours le premier que j'ai mis alors que quand je fais un console.log(this.ingredients) je vois qu'il y a mes 2 ingrédients.
Voila l'appel Ajax :
dans data.ingredient j'ai le nom de l'ingredient
j'ai également une autre question, j'ai mon instance de Ingredients (liste_ingredient qui est passé en parametre) parce qu'en gros je la crée des que la personne arrive sur la page puis je la passe dans 5 fonctions pour arriver a l'appel Ajax ça m'a pas l'air ouf . Du coup je ne vois pas comment faire autrement :/ j'ai ça en gros :
Connexion
liste_ingredient = new Ingredients();
Appel fonction1(liste_ingredient);
fonction1(
appel fonction2(liste_ingredient)
);
fonction2(
appel fonction3.....
jusqu'à l'appel Ajax vu que c'est que des fonctions imbriquées.
Bon voila j'ai fait un beau pavé xD J'espère surtout avoir été clair
Merci beaucoup a tout ceux qui prendront le temps de me répondre <3
Voila je suis actuellement en train de faire un petit projet ou je crée dynamiquement des cocktails et tout ça .
J'ai actuellement mes 2 classes ingrédients et ingrédient:
Code : Tout sélectionner
export class Ingredients {
constructor () {
this.ingredients = []; // list of instances of "Ingredient"
}
add(ingredient) {
this.ingredients.push(new Ingredient(ingredient));
}
get_ingredient() {
for(let i = 0; i <= this.ingredients.length; ++i)
{
return this.ingredients[i].get();
}
}
}
export class Ingredient {
constructor(ingredient) {
this.ingredient = ingredient;
}
get()
{
return this.ingredient;
}
}
Voila l'appel Ajax :
dans data.ingredient j'ai le nom de l'ingredient
Code : Tout sélectionner
let AjaxIngredient = ($self,liste_ingredient) => {
let $data = $self.serialize();
$self.hide();
$.ajax({
url: $self.attr("action"),
method: $self.attr("method"),
data: $data,
dataType: "json",
})
.done(function (data) {
if (data.hasOwnProperty("result")) {
if (data.result) {
//recuperer data.ingredient
liste_ingredient.add(data.ingredient);
console.log(liste_ingredient.get_ingredient());
$("#message_formulaire").empty().append("<p style='color: green'>"+data.message+"</p>").fadeIn(1000);
}else {
$self.fadeIn(2000);
if (data.hasOwnProperty("message")) {
/* display message */
$("#message_formulaire").empty().append("<p style='color: red' >"+data.message+"</p>").fadeIn(1000);
}
}
}
})
.fail(function () {});
return false;
}
Connexion
liste_ingredient = new Ingredients();
Appel fonction1(liste_ingredient);
fonction1(
appel fonction2(liste_ingredient)
);
fonction2(
appel fonction3.....
jusqu'à l'appel Ajax vu que c'est que des fonctions imbriquées.
Bon voila j'ai fait un beau pavé xD J'espère surtout avoir été clair
Merci beaucoup a tout ceux qui prendront le temps de me répondre <3