2016-11-25 1 views
2

Je ne peux pas trouver la solution si ce problème.Supprimer le composant lui-même

J'ai 2 composants:

@Component({ 
    selector: 'my-app', 
    template : ` 
    <product *ngFor="let prod of products" [product]='product'> 
    ` 
}) 
export class App { 
    public products =['object',object]; //its only example of products objects array 
} 

@Component({ 
     selector: 'product', 
     template : ` 
     <p>{{product.name}}</p> 
     ` 
    }) 

export class App { 
    @Input() product:any; 
} 

En ce moment, comment puis-je supprimer un composant de produit specyfic? Peut être composant peut le faire lui-même? Je vérifie ce message et ne pas encore avoir une idée Angular 2 - Adding/Removing components on the fly et How to destroy all the Components created using DynamicComponentLoader in angular2?

En application sera téléchargé la liste des produits de serwer et affiché comme celui-ci. Je veux ajouter un bouton pour retirer un seul produit de la liste. En ce moment j'ai une fonction qui supprime ce produit du serveur mais je pense que c'est une idée stupide de télécharger à nouveau la liste des produits. Donc, je pense qu'il sera beter retirer du DOM peut-être avec ElemntRef ou ComponentRef

+0

'products' est juste une copie locale. Si vous le supprimez, il n'est pas supprimé du serveur. Cela ne sonne pas du tout comme un cas d'utilisation pour enlever l'élément vous-même. Dans Angular2, le moyen préféré est de mettre à jour le modèle et de laisser les directives comme '* ngFor',' * ngIf', '* ngSwitchCase' faire la mise à jour du DOM. –

+0

J'ai une fonction qui supprime le produit sur le serveur mais je ne veux pas recharger une liste à nouveau. –

Répondre

1

Il suffit de retirer l'élément de products et le composant <product> sera supprimé par *ngFor. En outre, il n'y a aucun moyen de supprimer les composants ajoutés par Angular2. En outre, il n'y a aucun moyen de supprimer les composants ajoutés par Angular2. Vous ne pouvez supprimer que les composants que vous avez ajoutés vous-même.

+0

Dans l'application, la liste des produits sera téléchargée à partir serwer et affichée comme ceci. Je veux ajouter un bouton pour retirer un seul produit de la liste. En ce moment j'ai une fonction qui supprime ce produit du serveur mais je pense que c'est une idée stupide de télécharger à nouveau la liste des produits. Donc, je pense qu'il sera plus difficile de le retirer du DOM peut-être avec ElemntRef ou ComponentRef –

+0

Voir mon commentaire ci-dessus. Il n'y a pas besoin de télécharger à nouveau. Envoyez simplement une commande au serveur pour le supprimer et supprimez-le également dans le tableau 'products'. De cette façon, vous n'avez plus besoin de récupérer les données et Angular2 prendra soin de supprimer le composant. –

+0

C'est ça! Merci :) –