Vue.js propriété calculée ne fonctionne pas
J'ai un objet de données qui a un first_name et last_name et d'une propriété calculée qui renvoie le nom complet, mais la suite ne semble fonctionner dans mon v de la directive?
new Vue({
el: '#content',
data: {
"users": [
{
"id": 3,
"first_name": "Joe",
"last_name": "Blogs"
},
{
"id": 3,
"first_name": "Jane",
"last_name": "Doe"
}
]
},
computed: {
fullName: function (user) {
return user.first_name + ' ' + user.last_name;
}
}
});
<tr v-for="user in users | orderBy fullName(user)">
<td class="col-xs-6 col-sm-3 col-md-3 col-lg-3">
{{fullName(user)}}
</td>
<tr>
OriginalL'auteur adam78 | 2015-12-31
Vous devez vous connecter pour publier un commentaire.
Je ne crois pas qu'une propriété calculée en Vue.js peut accepter un argument, ils sont censés être en mesure de se construire sans interaction supplémentaire. Je crois que c'est de votre faute a qui vous avez écrit une méthode et a ensuite essayé d'enregistrer une propriété calculée.
Il devrait donc être une solution simple et il suffit de modifier l'enregistrement de votre fonction de
computed
àmethods
qui il est vraiment.De cette façon, vous n'aurez pas à modifier votre code.
OriginalL'auteur Azeame
Essayer de désactiver le cache sur la propriété calculée, comme mentionné dans https://github.com/vuejs/vue/issues/1189. Ce faisant, la valeur calculée sera toujours recalculées.
OriginalL'auteur Fernanda Lemos
Les propriétés calculées ne prennent pas en charge la nidification comme ça.
Preuve et certaines solutions/solutions alternatives: https://github.com/vuejs/vue/issues/66
OriginalL'auteur ceejayoz
Vous pouvez mapper les utilisateurs de votre calculée de la propriété et de l'utilisation que mappé tableau comme ceci:
Puis dans la vue, vous pouvez faire quelque chose comme:
Et je suis en utilisant es6 flèche de la fonction. Si vous ne souhaitez pas utiliser la flèche de la fonction, alors vous pouvez faire quelque chose comme:
OriginalL'auteur Mali Naeemi
j'ai eu un cas similaire, lorsque j'utilise un des accessoires de la propriété avec undecleared propriétés imbriquées. Pour une raison que j'ai fait ce travail en faisant un
console.log(user.first_name)
Aussi, j'ai fait ce travail en utilisant une expression lambda
https://stackoverflow.com/a/46234335/726751
OriginalL'auteur Jorge Wander Santana Ureña
J'ai une question similaire ici: Comment dinamically faire calculée en Vue.js sous chargement dynamique des données.
Mais, à la fin, voici la solution pour vous à partir de la conclusion que j'obtiens après avoir discuter et d'essai et d'erreur. Il existe plusieurs manières:
item.computedProperty()
dans l'INTERFACE utilisateur (avec double support)items
, créez un observateur qui va affecter la calculés pour chaque élément, puis de les mettre à l'intérieur deextendedItems
. la fonction calculée deviendra réactif quand il est lié à l'INTERFACE utilisateur, de sorte que l'INTERFACE utilisateur utilisera desextendedItems
au lieu deitems
this.$set
manuellement définir et activer la réactivité de la calculés.C'est calculée avec la fonction de la solution numéro 1:
OriginalL'auteur Hans Yulian
Faire une propriété calculée pour quelque chose comme ceci est un peu exagéré.
OriginalL'auteur notANerdDev