所以我想知道是否有一个计算字符串属性否定属性的当前布尔值。例如,在下面的计算属性“isDisabledSubmit”中,我在 isValidEmail 和 isValidMessage 前面添加了一个感叹号,试图否定属性值。这不起作用,但您可能可以假设我正在尝试完成什么。我可以通过添加两个额外的属性isInvalidEmail和isInvalidMessage来让它工作,但这在大型应用程序中似乎有点过分......有没有办法做一个非和非或/否定一个和/或内的属性?
export default Ember.Controller.extend({
contactForm: false,
contactEmail: '',
contactMessage: '',
isValidEmail: Ember.computed.match( 'contactEmail', /^.+@.+\..+$/ ),
isValidMessage: Ember.computed.gte('contactMessage.length', 10),
isDisabledSubmit: Ember.computed.or( '!isValidEmail', '!isValidMessage')
});
可能但繁琐的解决方案
export default Ember.Controller.extend({
contactForm: false,
contactEmail: '',
contactMessage: '',
isValidEmail: Ember.computed.match( 'contactEmail', /^.+@.+\..+$/ ),
isValidMessage: Ember.computed.gte('contactMessage.length', 10),
//Add negated version of previous properties...tedious approach...
isInvalidEmail: Ember.computed.not('isValidEmail'),
isInvalidMessage: Ember.computed.not('isValidMessage'),
//
isDisabledSubmit: Ember.computed.or( 'isInvalidEmail', 'isInvalidMessage')
});