Partage
  • Partager sur Facebook
  • Partager sur Twitter

[AngularJs] - Ajouter 1 fonction au clique bouton

    11 mai 2022 à 14:36:09

    Bonjour à tous,


    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

    • Partager sur Facebook
    • Partager sur Twitter

    [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é.
    • Editeur
    • Markdown