我想一旦我看到答案我会感到很愚蠢,但我无法理解为什么or
工作但and
不在这个问题上ComputedProperty
。该教程建议我需要使用and
,但如果这不起作用,我不知道该怎么做。
首先,我是 Ember 的新手,熟悉但对 javascript 不太熟悉,这就是为什么我认为我很难理解这里发生的事情。
我有两个属性都需要true
在 button 之前isDisabled
。我将它们中的每一个传递给它们自己的属性,这些属性反转它们的布尔状态,因此isDisabled
在按钮上保持活动状态,直到原始属性都被翻转。
联系.js
emailAddress: '',
message: '',
//**original properties**
isValid: Ember.computed.match('emailAddress', /^.+@.+\..+$/),//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
如果我输入正确的电子邮件地址格式:
emailAddress = true
notYet = false
isDisabled = true //still
如果我然后输入 5 个字符或更多字符的有效消息
validMessage = true
notNow = false
isDisabled = false //now
为什么“或”适用于此,为什么“和”或“不”不适用?