SimpleSchema解决了一个很大的普遍问题,但是我有时会对它感到困惑。
例如,我在那里定义了这个值:
changedPassword: {
type: Boolean,
optional: true
}
它会跟踪用户是否更改了密码,显然应该是true
或false
。但是,SimpleSchema似乎并没有分享我对Boolean
的含义的看法。
无论如何,当有人创建用户时,changedPassword
开始根本不存在,而当他更改密码时,true
被设置为false
。我在进行密码重置时遇到问题,该值应该还原为true
或不再存在。 SimpleSchema似乎不允许对此字段进行任何更改,除非将其设置为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)
但即使我已登录并在控制台中输入{{1}},它仍然无法实际进行更改。
这是什么目的,我该如何解决它?
答案 0 :(得分:0)
我通过简单地制作另一种方法来解决这个问题:
notChangedPassword: function() {
Meteor.users.update({_id: Meteor.userId()}, {$set: {changedPassword: false}})
}
不过,不知道它不适用于条件。看起来像个bug。我会在这里留下这个答案,直到有人能给出更好,更彻底的答案。