KeystoneJS依赖于在消失时不保存其新值

时间:2018-02-23 09:18:08

标签: keystonejs

User.add({
    name: { type: Types.Name, required: true },
    userid: { type: Types.Text, initial: true, required: true },
    exceed_login_attempt: { 
        type: Types.Boolean,
        default: false, 
        label: 'Exceeded Invalid Login Attempts',
        dependsOn: { exceed_login_attempt: true }
    }
});

我这里有一个复选框输入字段exceed_login_attempt如果值为true(已选中),我希望在AdminUI中显示它。如果我取消选中该值为false并且该复选框将消失 - 这很好。

但是当我保存它时,false的复选框值不能保存。渲染页面后,该值仍为true,这意味着它再次显示复选框。

1 个答案:

答案 0 :(得分:0)

在KeystoneJS database documentation上提到:

  

为了提高管理员界面的可用性,可以在未设置值时隐藏字段,也可以根据其他字段的值隐藏。

字段可以取决于其他字段的值。但是在您发布的代码中,exceed_login_attempt字段取决于它自己的值,这对我来说不合适:

exceed_login_attempt: { 
        ...
        dependsOn: { exceed_login_attempt: true }
    }

我不确定,也许您打算使用collapse而不是dependsOn

  

collapse [Boolean]当字段没有值时,在管理界面中显示+添加链接。当noedit也设置为true时,当字段没有值

时,将完全隐藏字段UI