0
SimpleSchema解决了一个很大的普遍问题,但是我有时候被人困惑了。如何在SimpleSchema中使用布尔值将false设置为值?
举例来说,我已经定义了有此值:
changedPassword: {
type: Boolean,
optional: true
}
它跟踪用户是否改变了他的密码,显然应该是要么true
或false
。但是,SimpleSchema似乎没有分享我对Boolean
含义的看法。
无论如何,changedPassword
在有人创建用户时根本不存在,并且在他更改密码时设置为true
。当我进行密码重置时,问题就会到来,并且该值应该恢复为false
或再次不存在。 SimpleSchema似乎不允许对此字段进行任何更改,但将其设置为true
!
我的方法可能是这样,
changedPassword: function(status) {
if (status === false) {
Meteor.users.update({_id: Meteor.userId()}, {$unset: {changedPassword: ''}})
}
}
或
changedPassword: function(status) {
if (status === false) {
Meteor.users.update({_id: Meteor.userId()}, {$set: {changedPassword: false}}
}
}
,但它仍然不会真正做出改变,甚至当我登录并输入在Meteor.call('changedPassword', false)
安慰。
这到底是什么目的,我该如何解决它?