Javascript/Ember - Bascule Boolean Valeur de la Variable
Je sais qu'il y a le .méthode set() pour définir une valeur booléenne true ou false, mais je veux savoir si il y a une méthode .set (), sauf qu'il Bascule la valeur d'un booléen.
Dans ce cas, le booléen isEditing est la valeur "true".
isEditing:false,
actions: {
edit: function(category){
category.set('isEditing', true);
console.log(this.get('isEditing'))
},
}
Voici le code html
{{#if isEditing}}
<div class="category-text">
{{view Ember.TextField valueBinding=name action="turnOffEditMode"}}
</div>
{{else}}
<div class="category-text">
{{#linkTo 'category' this}}
{{name}}
{{/linkTo}}
</div>
{{/if}}
OriginalL'auteur Ian S | 2014-02-21
Vous devez vous connecter pour publier un commentaire.
Edit: jsbin pour preuve
C'est la plus succincte de la méthode.
Il a demandé si il y avait une autre méthode que
set
et c'est cette méthode. Désolé."Je veux savoir si il y a une méthode .set (), sauf qu'il Bascule la valeur d'un booléen"
pouvez-vous définir la méthode ici ?
OriginalL'auteur Jake Roby
Le basculement de la valeur booléenne est ce que vous avez besoin. Ou yu peut changer votre fonction comme ci-dessous.
Pourquoi est-ce que cela a bas voté ? Ce serait génial si vous pouviez fournir une raison
J'ai voté ce et votre commentaire précédent. Je n'ai pas assez de rep pour voter contre. Réitérer les haïssent, CETTE SOLUTION a FONCTIONNÉ. 😉
c'.toggleProperty est mieux pour ce cas. Je pense que la réponse de @gravityplanx est mieux.
Aussi, si vous allez le faire explicitement, vous avez besoin d'utiliser get au lieu d'obtenir directement la valeur
category.set('isEditing', !category.get('isEditing'))
OriginalL'auteur Triode
@gravityplanx la réponse est grande.
Je veux juste ajouter que cette méthode fonctionne au-delà de l'appareil en tant que bien.
Par exemple, si mon Modèle possède un
Post
objet, je peux le mettre à jour à partir du contrôleur. Je viens de passer l'objet dans l'action d'un contrôleur.toggleFood(food) { food.toggleProperty('available') }
- ne fonctionne pas vraiment pour moi... semble comme @gravityplanx choisi une petite partie de la question et a répondu - mais pas dans le contexte.OriginalL'auteur Cameron