J'ai un bouton et une gamme d'objets,
generateRandomNumber() {
return Math.floor(Math.random() * 10);
}
appendDataToLink() {
this.test.forEach( e => {
e.link = `${e.link}/rd-${this.generateRandomNumber()}`
});
console.log(this.test);
}
5 Réponses :
La solution la plus simple consiste à maintenir un booléen puis modifier la fonction d'append comme p>
Je ne peux pas coder un nouveau projet manuellement. Si vous pouvez ajouter de manière programmable un accessoire c'est bien.
@ anonyme vérifier à nouveau s'il vous plaît
Prenez la sous-chaîne du lien au lieu du lien
Ce n'est pas une solution, c'est un "hack"
peut également utiliser une fonction SPLIT ('/ RD') et prendre une première partie et ajouter un nombre aléatoire
Vérifiez ce code.
Vérifiez d'abord la météo Toute chaîne ('RD-') présente ou non, si elle est là, remplacez-la ou si elle ne l'ajoute pas simplement. P>
this.test.forEach( e => {
if (/rd-[0-9]/.test(e.link)) {
e.link = (e.link).replace(/rd-[0-9]/, `rd-${this.generateRandomNumber()}`);
}
else {
e.link = `${e.link}/rd-${this.generateRandomNumber()}`
}
});
Comme je suis lié dans mon commentaire, c'est un moyen simple de le faire https://stackblitz.com/edit/angular- 5BQ8EZ? Fichier = src / app / app.component.ts Vous enregistrez le lien d'origine et utilisez-le pour générer des liens futurs
modifier: comme indiqué dans les commentaires (explication de la solution ajoutée) p>
Modification du Ceci utilise le lien fourni comme base pour générer de nouveaux liens et ne nécessite pas de modifier l'objet d'origine P> P> AppenddatatOtOlink CODE> Fonction suivante: p>
Belle solution propre. Ne nécessite pas que le tableau d'origine soit modifié
Vous devez expliquer votre solution dans le texte de réponse tout en fournissant le lien comme référence. Cela aidera les futurs lecteurs et garder votre réponse valable si le lien devient obsolète.
Je vois ce que vous essayez de faire.
Chaque fois que vous cliquez sur le bouton, il appendra le nombre aléatoire etc. P> Si vous souhaitez remplacer le numéro à la fin de la liaison avec un numéro différent, vous devez d'abord supprimer le dernier numéro à l'aide de Substrage avant d'ajouter le nouveau numéro.
Vous pouvez également ajouter un nouveau champ à savoir si le lien a déjà été modifié ou si c'est la première fois que le bouton a été cliqué, vous ne perdez donc pas la partie '/ ghi' partie: p> J'espère que cela aide! p> p> '/ rd- (randnum)' code> sur la chaîne existante.
Donc, si vous commencez par '/ abc / def / ghi' code> et cliquez sur le bouton, il ajoutera sur la chaîne.
Par exemple:
Edité Stackblitz: Stackblitz.com/edit/angular-qxy7jh ? File = src / app / ...
Votre exemple de code fonctionne simplement bien. Peut-être que vous cliquez deux fois sur le bouton deux fois
Chaque fois que je clique, je dois ajouter le nouvel identifiant
Votre code fonctionne bien
Non, à chaque fois, vous cliquez sur seulement le nombre récent doit être annexé. Il devrait remplacer l'ancienne valeur.
Et exactement cela se passe ... sur chaque clic, vous ajoutez A / RD-X à votre URI
Mais je veux un moyen de remplacer l'ancien avec le courant actuel.
Oh, vous voulez donc que la dernière partie du lien change, ne pas ajouter de nouveau, chaque fois que vous cliquez sur. Vous pouvez simplement enregistrer le lien d'origine et l'utiliser pour générer le nouveau lien Est-ce ce que tu veux?
Eh bien, OK alors, vous n'avez pas mentionné de remplacer, il suffit d'ajouter
Si vous lisez la question complètement, vous pouvez comprendre le problème.