钉钉小程序报错data.formatTime is not a function是因为 axml 模板中不能直接调用 Page 内自定义方法!

我在js里面写了个formatTime方法

复制代码
Page({
  data: {
    pageNum: 1,
    pageSize: 10,
    loading: false,
    total: 0,
    workList: [],
    token: "",
    // 【新增】搜索筛选条件
    searchTitle: "", // 标题搜索
    selectDate: "", // 选择日期 yyyy-MM-dd
    // 【新增】展开控制:key=工单id,value=true/false 是否展开列表
    expandWorkIds: {},
    // 查询列表缓存 key=工单id,value=查询的数组
    workDealerMap: {}
  },
  formatTime(timeStr) {
    if(!timeStr) return ''
    return timeStr.split('T')[0]
  },

然后在axml里面写这个时间显示: <text>时间:{{formatTime(item.maintainTime)}}</text>

复制代码
<!-- 测试列表 -->
<scroll-view scroll-y>
  <block a:for="{{workList}}" a:key="id">
    <view class="work-item">
      <!-- 测试主行 -->
      <view class="work-head" data-workid="{{item.id}}" onTap="toggleWorkExpand">
        <view class="work-info">
          <text>标题:{{item.maintainTab}}</text>
          <text>时间:{{formatTime(item.maintainTime)}}</text>
        </view>
        <view class="arrow {{expandWorkIds[item.id] ? 'arrow-down' : 'arrow-right'}}">▶</view>
      </view>

结果页面报错

控制台报错信息打印如下

ata.formatTime is not a function

Please check your axml:

in pages/testList/testList

这是钉钉小程序 axml 模板中不能直接调用 Page 内自定义方法!

这个优化方案踩坑了,模板无法直接执行页面 js 里的函数,导致页面直接崩溃

我暂时不知道怎么跨过去调用,先在这个里头来循环跑一下,预处理所有数据的时间

复制代码
success: (res) => {
        console.log("接口success回调,返回数据:", res.data);
        const result = res.data;
        if (result.code === 401) {
          dd.showToast({ title: "登录认证失效,请重新获取token", icon: "none" });
          return;
        }
        if (result.code === 200) {
          const rows = result.rows || [];
          // =========在这个里头来循环跑一下,预处理所有数据的时间=========
          rows.forEach(row=>{
            if(row.maintainTime){
              row.maintainTime = row.maintainTime.split('T')[0]
            }
          })
          // =====================================
          const total = result.total || 0;
          let oldList = this.data.workList;
          const newList = refresh ? rows : [...oldList, ...rows];
          this.setData({
            workList: newList,
            total: total,
            pageNum: page
          });
        }
      },
相关推荐
学长毕设5 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
zzu123zsw6 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
源码集结号7 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场7 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
啃瓜子的松鼠7 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David8 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放8 小时前
Python基础语法练习题(73)
java·前端·python
Wang's Blog8 小时前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友
用户3721574261359 小时前
Java 操作 Word 脚注和尾注:添加、读取与删除
java
小嘉丶学长9 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节