Voilà l'idée : à partir d'un formulaire je récupère des variables pour remplir un tableau. Rien de spécial, ça ça fonctionne.
Au bout du tableau j'ajoute un bouton que j'ai entièrement créer. Là aussi ça fonctionne.
Je veux mettre une fonction (qui devra delete une ligne) au bouton.
Le problème est là, j'arrive à ajouter la fonction (ou tout du moins le dom me dit que oui), mais la fonction n'est jamais appelée (puisque je n'ai pas le bête console.log qui est dedans).
J'ai 2 essai d'écriture qui me rendre bien ce que je veux (les // avec essai 1 et 2 dans le code suivant)
////////////////////////////////////////
this.addlineCostDetails = function(line) {
console.log("service addline");
//création variables avec élément HTML
var trElement = document.createElement("tr");
var tdNumInvoice = document.createElement("td");
var tdInvoiceDate = document.createElement("td");
var tdInvoiceType = document.createElement("td");
var tdLabelEstimatedCost = document.createElement("td");
var tdProductName = document.createElement("td");
var tdDeviseName = document.createElement("td");
var tdUnitCost = document.createElement("td");
var tdComment = document.createElement("td");
var tdBtn = document.createElement("td");
//ajout id à la ligne
trElement.id = "costline" + line;
//remplissage
var contentNumInvoice = document.createTextNode(me.numInvoice);
var contentInvoiceDate = document.createTextNode(me.invoiceDate);
var contentInvoiceType = document.createTextNode(me.invoiceType);
var contentLabelEstimatedCost = document.createTextNode(me.labelEstimatedCost);
var contentProductName = document.createTextNode(me.productName);
var contentDeviseName = document.createTextNode(me.deviseName);
var contentUnitCost = document.createTextNode(me.unitCost);
var contentComment = document.createTextNode(me.comment);
//remplissage des cellules
tdNumInvoice.appendChild(contentNumInvoice);
tdInvoiceDate.appendChild(contentInvoiceDate);
tdInvoiceType.appendChild(contentInvoiceType);
tdLabelEstimatedCost.appendChild(contentLabelEstimatedCost);
tdProductName.appendChild(contentProductName);
tdDeviseName.appendChild(contentDeviseName);
tdUnitCost.appendChild(contentUnitCost);
tdComment.appendChild(contentComment);
/*//création bouton supprimer
//<button className="btn btn-info pull-right" ng-click="supprimer()" className="costline0">Supprimer</button>
//<button className="btn btn-info pull-right" ng-click="supprimer()" costLineNumber=' + costLineNumber + '>Supprimer</button>
//Premier essai
var btnElement = document.createElement("button");
btnElement.classList.add("btn", "btn-info", "pull-right");
var costLineNumber = "costline" + line;
//btnElement.classList.add(costLineNumber);
btnElement.setAttribute("costLineNumber", costLineNumber);
btnElement.setAttribute("ng-disabled","isProcessing");
//btnElement.setAttribute("ng-click", "supprimer(" + costLineNumber + ")");
btnElement.setAttribute("ng-click", "deleteLineCostDetails(" + costLineNumber + ")");
var contentBtn = document.createTextNode("Supprimer");
btnElement.appendChild(contentBtn);
tdBtn.appendChild(btnElement);*/
//deuxième essai
var costLineNumber = "costline" + line;
var btnElement = '<button className="btn btn-info pull-right" ng-click="supprimer(" + costLineNumber + ")" costLineNumber=' + costLineNumber + '>Supprimer</button>'
tdBtn.innerHTML = btnElement;
//ajout des cellules à la line
trElement.appendChild(tdNumInvoice);
trElement.appendChild(tdInvoiceDate);
trElement.appendChild(tdInvoiceType);
trElement.appendChild(tdLabelEstimatedCost);
trElement.appendChild(tdProductName);
trElement.appendChild(tdDeviseName);
trElement.appendChild(tdUnitCost);
trElement.appendChild(tdComment);
trElement.appendChild(tdBtn);
//ajoute de la ligne dans tableau
costDetail.appendChild(trElement);
//console.log("me",me);
this.reset();
}
//////////////////////////////////////
Le problème c'est que le click sur le bouton ne fait absolument rien, je n'ai rien dans la console. Je pense qu'il ne me manque pas grand chose mais je n'arrive pas à trouver ...
Voilà Merci d'avance
- Edité par Pitchounvivi 11 mai 2022 à 14:38:19
[AngularJs] - Ajouter 1 fonction au clique bouton
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.