收藏
回答

对于云开发数据库返回图片地址问题?一个或者多个

因为查询数据库返回的json串 不固定

有时候是一个图片地址,有时候是多个图片地址

应该怎么写这个wx:for 求解


多个图片的时候写下列代码可行,但是单独图片就会把地址解释成一个一个字符显示

 <view wx:for="{{item}}" wx:for-index="pictureid" wx:for-item="picturetwodata">

      <view style="font-weight:bold">图片{{pictureid+1}}:</view>

      <image mode="widthFix" src="{{picturetwodata}}" style="width:100%" data-src="{{picturetwodata}}" bindtap='previewImg'></image>

    </view>


一张图片的返回json:

  1. 0:
  2. Asset_code: "TTRX-01"
  3. Asset_name: "TTRX-1-0"
  4. device_seriverNumber: "DZ073680013"
  5. imageFileid: "https://7374-study1-1gsqm6ev848b2f5e-1304650078.tcb.qcloud.la/cloudbase-cms/upload/2022-08-07520b8d732c249a&t=1660025495"
  6. _id: "c5f8117762f1f27c000ca7e21980d63e"
  7. _updateTime: 1660025594116


多张图片的返回json:

  1. 0:
  2. Asset_code: "TTRX-02"
  3. Asset_name: "TTRX-1-1"
  4. device_seriverNumber: "DZ071680737"
  5. imageFileid: Array(2)
  6. 0: "https://7374-study1-1gsqm6ev848b2f5e-1304650078.tcb.qcloud.la/cloudbase-cms/upload/2022-08-09/0saq6vtk82omfqok3jy95lw0bf66coos_.png?sign=3ebbfa216ea207eea69584abdb8db22d&t=1660025903"
  7. 1: "https://7374-study1-1gsqm6ev848b2f5e-1304650078.tcb.qcloud.la/cloudbase-cms/upload/2022-08-09/w4r36yde9qdjfh872dpqcub8o1jhmyvm_.png?sign=33ebf6fa8a32f2882acacd3c169d2d31&t=1660025989"
  8. length: 2
  9. nv_length: (...)
  10. __proto__: Array(0)
  11. _id: "c5f8117762f1f27c000ca7e37b3926a3"
  12. _updateTime: 1660025991473



多张图片解释正常,能用wx:for处理。 但是单张图片会把 imageFileid对应的item 拆解成一个一个子母返回.

最后一次编辑于  2022-08-09
回答关注问题邀请回答
收藏

3 个回答

  • 一笑皆春
    一笑皆春
    2022-08-09

    很多种处理办法,可以处理一下数据,或者根据不同的数据类型通过wx:if来控制使用不同的布局

    2022-08-09
    有用 3
    回复 3
    • 啊翔
      啊翔
      2022-08-09
      我是想用wx:if {{ item.length>1}}来判断的,但是我用 item.length来判断也不行,多张图片反应实际图片数量,单张图片的length直接返回地址字符串数量。。。。大神救救我吧
      2022-08-09
      回复
    • 一笑皆春
      一笑皆春
      2022-08-09回复啊翔
      你判断下imageFileid是不是数组就行了,Array.isArray(imageFileid)
      2022-08-09
      回复
    • 啊翔
      啊翔
      2022-08-09回复一笑皆春
      不用处理了,很奇怪。我用微信云开发的内容管理,打开了图片多文件上传,这次上传一张也会变成array了有个括号括起来了。 不过我没动过数据库 ,真的奇怪。
      2022-08-09
      回复
  • 拾忆
    拾忆
    2022-08-09

    把不同情况(单张图片和多张图片)下返回的数据格式贴一下,看看具体问题出在哪里。

    正常的话如果是数据库查询结果直接返回应该内容是数组。

    2022-08-09
    有用 1
    回复 5
    • 啊翔
      啊翔
      2022-08-09
      已补充 感谢 Thanks♪(・ω・)ノ
      2022-08-09
      回复
    • 拾忆
      拾忆
      2022-08-09回复啊翔
      那你就在小程序端判断一下 imageFileid的类型是字符串还是数组,如果是数组就不用改,如果是字符串就直接在赋值到data的时候用[]包一下数据。
      2022-08-09
      回复
    • 啊翔
      啊翔
      2022-08-09回复拾忆
      大概明白, WX:IF(条件)判断是字符串不for    是数组就用for。   但是我不会判断, WX:IF 的这个条件应该怎么写?
      2022-08-09
      回复
    • 拾忆
      拾忆
      2022-08-09回复啊翔
      在JS中处理,不要再wxml中判断。
      2022-08-09
      回复
    • 啊翔
      啊翔
      2022-08-09回复拾忆
      不用处理了,很奇怪。我用微信云开发的内容管理,打开了图片多文件上传,这次上传一张也会变成array了有个括号括起来了。 不过我没动过数据库 ,真的奇怪。
      2022-08-09
      回复
  • 茜茜又困了🐽
    茜茜又困了🐽
    2022-08-09

    返回的数据是list,就能使用wx:for

    2022-08-09
    有用 1
    回复 3
    • 啊翔
      啊翔
      2022-08-09
      是的,多张图没问题。但是单张图片用for 直接把itme的地址当做了 拆解成一个一个子母。
      2022-08-09
      回复
    • 茜茜又困了🐽
      茜茜又困了🐽
      2022-08-09回复啊翔
      你返回单张图片时,imageFileid返回的不是array,而是string,wx:for就会遍历这个字符串,修改下返回的格式
      2022-08-09
      回复
    • 啊翔
      啊翔
      2022-08-09回复茜茜又困了🐽
      不用处理了,很奇怪。我用微信云开发的内容管理,打开了图片多文件上传,这次上传一张也会变成array了有个括号括起来了。 不过我没动过数据库 ,真的奇怪。
      2022-08-09
      回复
登录 后发表内容