SimpleSchema 解决了一个很大的一般问题,但有时我会被它弄糊涂。
例如,我在那里定义了这个值:
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)
在控制台中输入。
这样做的目的到底是什么,我该如何解决?