ng-admin不会显示下拉存储值

时间:2017-07-09 10:47:01

标签: javascript mysql angularjs ng-admin

我真的希望有人可以帮助我解决使用ng-admin的问题。 我用ng-admin创建了一个仪表板,一切正常。在我使用布尔字段和选择的模型上只有一个问题。当然会显示一个下拉字段,但是在编辑条目时,不会选择数据库中的正确值。我也试过使用filterChoices,但不会做任何改变......打开编辑视图后仍然没有选择。

这是我的字段声明:

nga.field('copiable','boolean')
                .label('Copy')
            .choices([
                      { value: null, label: 'Please choose' },
                    { value: true, label: 'Yes' },
                      { value: false, label: 'No' }
                  ])
            .filterChoices([
                    { value: null, label: 'Please choose' },
                    { value: true, label: 'Yes' },
                      { value: false, label: 'No' }
                  ]),

在这里你可以看到我的JSON响应对象:

{xxx, xxx, "copiable":"1"}

这是MySQL结构: enter image description here

也许我在这里犯了一个错误,有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

如果有人在那里......谁有同样的问题。 我现在得到了解决方案!

MySQL将boolean存储为整数0,1,我的后端使用PHP SLIM API获取这些值并将其放入JSON响应中。 但是ng-admin只希望值为“true”或“false”,并且不能用0,1 ...所以我只需要自定义我的API响应,现在它工作正常!

也许这有助于某人...... 问候

答案 1 :(得分:0)

您可以使用map/transform方法:

nga.field('copiable', 'boolean')
        .label('Copy')
        .choices([
            { value: null, label: 'Please choose' },
            { value: true, label: 'Yes' },
            { value: false, label: 'No' }
        ])
        .map(value => !!value)
        .transform(value => value ? 1 : 0)

map会将来自API 10的来信转换为truefalse

transform反之亦然,在将数据发送到API

之前,将truefalse转换为10