Je pense que je vais me sentir stupide une fois que je vois la réponse, mais je ne peux pas comprendre pourquoi or
fonctionne, mais and
n'est pas sur ce ComputedProperty
. Le tutoriel a suggéré que je devrais utiliser and
, mais je ne peux pas comprendre comment je ferais cela si cela ne fonctionne pas.Pourquoi "ou" fonctionne-t-il mais "et" ne figure pas dans ma propriété Ember.ComputedProperty?
Pour commencer je suis nouveau à Ember et familier mais pas vraiment à l'aise avec javascript, c'est pourquoi je suppose que j'ai de la difficulté à comprendre ce qui se passe ici.
J'ai deux propriétés dont j'ai besoin à la fois true
avant un bouton isDisabled
. Je passe chacun d'entre eux à ses propres propriétés qui inversent leur état booléen afin que isDisabled
reste actif sur un bouton jusqu'à ce que les propriétés d'origine soient retournées.
contact.js
emailAddress: '',
message: '',
//**original properties**
isValid: Ember.computed.match('emailAddress', /^[email protected]+\..+$/),//starts as false
validMessage: Ember.computed.gte('message.length', 5),//starts as false
//**my reversing boolean properties**
notYet: Ember.computed.not('isValid'),//starts as true
notNow: Ember.computed.not('validMessage'),//starts as true
//isDisabled must be true to be active disabling button
isDisabled: Ember.computed.or('notYet', 'notNow'),//starts as true
Si je mets au format emailAddress correct:
emailAddress = true
notYet = false
isDisabled = true //still
Si je puis mettre un validMessage de 5 caractères ou plus
validMessage = true
notNow = false
isDisabled = false //now
Pourquoi "ou" travailler pour cela, pourquoi pas "et" ou "pas"? Je ne suis pas sûr de savoir si je comprends votre question correctement;
Merci de répondre. En bref ce que je dis est "Mon code fonctionne, je ne comprends pas pourquoi mon code fonctionne." – Lenocam