J'ai créé un tuyau pour pouvoir utiliser *ngFor
with objects. Toutefois, lorsque l'objet est mis à jour, le canal n'est pas mis à jour. J'ai trouvé une solution here en utilisant le tube stateful avec pure: false
.Mise à jour manuelle du tuyau de déclenchement
Cette solution n'est pas acceptable en termes de performance pour mon cas d'utilisation car elle rafraîchira le tuyau pour chaque changement (j'utilise ce tuyau presque partout pour rendre des éléments complexes).
Existe-t-il un moyen de déclencher un rafraîchissement manuel du tuyau afin qu'il ne rafraîchisse que lorsque je le souhaite?
Voici un plunker - pour voir le problème, essayez de supprimer un nom en cliquant sur un bouton -
. Si vous ajoutez pure:false
vous verrez que cela fonctionnera:
@Pipe({name: 'keys', pure: false})
export class Keys implements PipeTransform {
transform(value, args:string[]) : any {
let keys = [];
for (let key in value) {
keys.push({key: key, value: value[key]});
}
return keys;
}
}
Ce que je voudrais est d'ajouter quelque chose à ma fonction delName()
il met à jour le tuyau ...
Avez-vous besoin d'utiliser 'Pipe' et êtes-vous capable de changer la structure de données de 'names'? – ulubeyn
Avoir à utiliser 'Pipe', non, mais je ne pouvais pas trouver une meilleure solution pour utiliser l'objet dans' * ngFor'. Je ne peux pas changer ma structure de données ... – ncohen