1

我正在使用accounts-ui-bootstrap3包。它基于常规的 accounts-ui 包

我在注册表单中有一个复选框,用于检查某人是否是老师。但是,即使有人没有选中“teacher”复选框,“teacher”值也始终在配置文件对象中保存为“true”。

Accounts.ui.config({
    requestPermissions: {},   
    extraSignupFields: [{
        fieldName: 'teacher',
        fieldLabel: 'Teacher?',
        inputType: 'checkbox',
        visible: true,
        saveToProfile: true
    }]
});

这在 HTML 中给了我这个

<div class="checkbox">
    <label>
    <input type="checkbox" id="login-teacher" name="login-teacher" value="true">
    Teacher</label>
</div>
4

1 回答 1

0

我在使用同一个包时遇到了完全相同的问题。在花了一段时间试图通过玩弄它来弄清楚它之后,我还是把它放到了我的应用程序中,问题突然消失了,似乎没有任何理由——从今天早上开始,false如果没有勾选,复选框就会返回。

但这对你没有帮助!

首先,这是我在meteorpad上复制的问题:http: //meteorpad.com/pad/DAQ8wF63F2AQafQjd/Accounts%20ui%20test

看起来会发生这种情况,因为当复选框被创建时,它的值为 true,所以它总是返回 true。就像我说的那样,尽管如此,我的问题还是神奇地自行解决了,但是如果您仍然遇到问题,您可以尝试以下方法:

  • saveToProfile: false
  • 使用类似的东西查找是否选中了该框$("#login-teacher").prop("checked")
  • 然后:
    • 只需将该属性添加到您的用户的个人资料中Users.update()
    • Accounts.onCreateUser()文档中使用

否则,如果您在提出问题后的时间内找到了答案,请更新此内容!

于 2015-07-31T10:16:07.897 回答