如果在设置页面中选择,则仅显示输入

Only show inputs if selected in settings page

我正在尝试弄清楚如何让用户转到 /settings 并选中几个复选框,然后当他们转到 /new 时,他们将只会看到与那些对应的输入他们在 /settings 时选择了。

我不确定该怎么做,我知道我需要将它保存到数据库,但我应该如何提取数据以仅显示我想要的输入。我正在考虑将选项设置为布尔值,当它为真(选中)时,它将显示输入。我对这个想法的唯一问题是我不确定如何使用尽可能少的数据库查询来做到这一点。理想情况下,我只会发送 1 个查询而不是 10 个左右。

在您的 users 集合中,添加 settings 字段。

示例 user 文档:

{
    "_id" : ObjectId("59c20694d58a3e3e393fe779"),
    "email" : "user@gmail.com",
    "role" : "user",
    "password" : "aTK8N8T1VohE6hHklqdeCubYmOimBaAcnHWHSKxb4x6AudlWeDeEa",
    "created" : ISODate("2017-09-20T06:11:32.014Z"),
    "settings": {
        "option_1": true,
        "option_2": false,
        "option_3": true,
        "option_4": true
    }
}

然后,加载 /new 路由后,读取 user.settings 并在您的模板引擎中,根据设置显示内容。

如果提到的设置要用于多个路由 (/new),请考虑将它们存储在会话中。

此外,如果您使用 angular 这样的框架,请考虑将设置添加到全局服务中。