【问题标题】:ng-admin won't display dropdown stored valuesng-admin 不会显示下拉存储值
【发布时间】:2017-07-09 10:47:00
【问题描述】:

我真的希望有人可以帮助我解决使用 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 的结构:

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

【问题讨论】:

    标签: javascript mysql angularjs ng-admin


    【解决方案1】:

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

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

    也许这对某人有帮助.... 问候

    【讨论】:

      【解决方案2】:

      您可以使用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 或者 truefalse 转换为 10,然后将数据发送到 API

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-16
        • 2012-03-18
        • 1970-01-01
        • 2012-05-27
        • 1970-01-01
        • 2020-02-15
        • 2013-12-27
        相关资源
        最近更新 更多