2017-08-23 7 views
0

J'essaie d'utiliser ng2-smart-table pour afficher les données et l'édition en ligne. Cependant, il semble que quelque chose ne va pas avec ce composant. J'ai cloné le repo et effectué quelques tests localement. Je suis la démo exemple de base et a ajouté l'objet de données d'entrée pour voir les modifications/liant dans l'objet:ng2-smart-table ne lie pas après la suppression

<ng2-smart-table [settings]="settings" [source]="data"></ng2-smart-table> 
<pre>{{data | json}}</pre> 

Quand je « Ajouter une nouvelle » ligne, il montre la nouvelle entrée dans le tableau d'objet comme prévu. L'édition de n'importe quelle ligne fonctionne aussi, mettant à jour la ligne correctement. Toutefois, lorsque vous supprimez une ligne, l'objet ne change pas et affiche la ligne supprimée dans le tableau d'objets mais pas dans la grille. Lorsque j'essaie d'ajouter une autre ligne, elle affiche la nouvelle ligne dans la grille, mais elle ne met pas à jour/lie la nouvelle valeur dans le tableau d'objets. La mise à jour fonctionne toujours comme prévu.

Je poste cette question dans le github de ng2-smart-table et je n'ai pas répondu là-bas alors j'espère pouvoir l'obtenir ici.

Alors c'est un vrai bug? Voici le Plunker avec mes tests.

Merci à tous.

+0

Avez-vous trouvé une solution? –

+0

Malheureusement, je n'ai trouvé aucune solution et je n'ai pas obtenu de réponse à la question que j'ai postée dans github. J'ai donc abandonné la grille et commencer à utiliser la grille régulière :( – UncleFester

+0

J'ai testé cette application mon angulaire 4 et son fonctionnement bien.Je vais envoyer une solution de travail bientôt :) –

Répondre

0

Ajouté quelques lignes de code au code plnkr fourni

Voici le Plunker de travail: https://plnkr.co/edit/UW9s11xhi5wJgt0nLzXj?p=preview

Dans le modèle

<ng2-smart-table [settings]="tableSettings" [source]="data" 
(deleteConfirm)="modifyData($event)" 
(createConfirm)="addData($event)" 
></ng2-smart-table> 
    <pre>{{data | json}}</pre> 

En app.ts

delflag=false; 
    addData(event){ 
    if(this.delflag){ 
     this.data.push(event.newData); 
    } 
    // console.log(event); 
    event.confirm.resolve(event.newData); 
    } 
    modifyData(event){ 
    this.delflag=true; 
    // console.log(this.data); 
    let delrow=Object.keys(event.data); 
    for(var j in this.data) 
    { 
     // console.log(this.data,event.data); 
    if(this.data[j]==event.data) 
     { 
     this.data.splice(j,1); 
     // this.data=event.source.data; 
     } 
    } 
    event.confirm.resolve(event.source.data); 

    // console.log(this.data) 
    if(this.data.length==0) 
     {this.data=[]; 
     this.delflag=false; 
     } 
    } 

Dans les milieux

tableSettings = { 
add:{ 
    confirmCreate:true 
    }, 
    delete :{ 
     confirmDelete: true 
    }, 
//other fields 
} 

Hope this helps !!!