小程序不要频繁发起请求(每次点击都发请求)可以通过这种方式实现唯一性并且只请求一次
showClass(id){console.log('学校id',id)var that = this;var myClassData = this.data.myData;if (!(myClassData[id] && myClassData[id].length)){//限制只请求一次,当有数据时候就不发起请求了wx.request({url: 'https://haiyunht.langqiyun.cn/index/api/getTeacherClass?id=' + id,header: {'content-type': 'application/json' // 默认值},success(res) {myClassData[id] = res.data.data;that.setData({myData: myClassData});}})}}
完整代码:
html:
<!--addClass.wxml-->
<view class="container"><view class="selectContain"><view class="contain" wx:for="{{myClassData}}" wx:for-item="school" data-scid="{{school.id}}" wx:for-index="schoolIndex" data-num="{{schoolIndex}}" data-addTemp="{{school.addTemp}}" bindtap='collaFun'><view class="desc"><view class="conLeft"><view class="logo"><image class="logoPic" src="logo.png"></image></view><view class="title">{{school.school_name}}</view></view><view class="open"><image class="openPic" src="open.png"></image></view></view><view class="collapseItem" wx:if="{{school.addTemp}}" data-sccheck="{{school.addTemp}}"><view class="colClass" wx:for="{{myData[school.id]}}" wx:for-item="class" wx:for-index="classIndex" data-scid="{{school.id}}" data-id="{{class.id}}" catchtap='radioFun'><radio color='#40CBE5' style="transform:scale(0.7);" checked="{{class.active}}" data-checktemp="{{class.addTemp}}" data-sc='{{schoolIndex}}' data-cl='{{classIndex}}'></radio>{{class.class}}</view></view></view></view><view class="btn">添加班级</view>
</view>
js:
//index.js
//获取应用实例
//自己写的多项复选框选择功能var util = require("../../utils/util.js");
const app = getApp()Page({data: {checked: false,activeNames: ['1'],myClassData: [],myData:[],selectClass: {}},collaFun(e) {var addTemp = e.currentTarget.dataset.addtemp;console.log('scaddTemp', addTemp);var num = e.currentTarget.dataset.num;var scid = e.currentTarget.dataset.scid;if (addTemp == false) {for (let i = 0; i < this.data.myClassData.length; i++) {if (i == num) {this.setData({['myClassData[' + num + '].addTemp']: true});} else {this.setData({['myClassData[' + i + '].addTemp']: false});}}} else {this.setData({['myClassData[' + num + '].addTemp']: false});}this.showClass(scid);},onLoad: function() {this.loadData();},radioFun(e) {var schoolId = e.currentTarget.dataset.scid;var classId = e.currentTarget.dataset.id;var selectClass = this.data.selectClass;var myData = this.data.myData;if (myData[schoolId]) {for (let i = 0; i < myData[schoolId].length; i++) {let item = myData[schoolId][i];if (item.id == classId){if (item.active) {item.active = false;if (selectClass[item.id]){delete selectClass[item.id];}} else {item.active = true;selectClass[item.id] = item.id;}}myData[schoolId][i] = item;}this.setData({myData: myData,selectClass: selectClass});}},getUserInfo: function(e) {console.log(e)app.globalData.userInfo = e.detail.userInfothis.setData({userInfo: e.detail.userInfo,hasUserInfo: true})},loadData() {//获取缓存的老师idvar that = this;util.getStoreInfo(that);//获取老师的所有学校信息wx.request({url: 'https://haiyunht.langqiyun.cn/index/api/getTeacherSchool?id=' + this.data.tid,header: {'content-type': 'application/json' // 默认值},success(res) {let data = res.data.data;if (res.data.code == 200) {that.setData({myClassData: data}, function() {that.fieldAddClass();});console.log('that', that.data.myClassData)}}})},fieldAddClass() {const myClassData = this.data.myClassData;console.log('myClaData', myClassData);for (let i = 0; i < myClassData.length; i++) {this.setData({['myClassData[' + i + '].addTemp']: false,['myClassData[' + i + '].loadData']: false,});}console.log('myClaData', myClassData);},showClass(id){console.log('学校id',id);var that = this;var myClassData = this.data.myData;if (!(myClassData[id] && myClassData[id].length)){wx.request({url: 'https://haiyunht.langqiyun.cn/index/api/getTeacherClass?id=' + id,header: {'content-type': 'application/json' // 默认值},success(res) {myClassData[id] = res.data.data;that.setData({myData: myClassData});}})}console.log('myData000',that.data.myData);console.log('idd',id)var myDataInfo = that.data.myData[id];console.log('myDataInfo.length', myDataInfo)for (let m = 0; m <2;m++){that.setData({['myDataInfo[' + m + '].addTemp']: false,});}console.log('000', that.data.myData);}})
小程序不要频繁发起请求(每次点击都发请求)可以通过这种方式实现唯一性并且只请求一次相关推荐
- 【微信小程序】随机点名系统(点击开始滚动名字点击结束按钮结束滚动)
[微信小程序]随机点名系统(点击开始滚动名字点击结束按钮结束滚动) 1.效果图: 2.js代码 {Page({data:{condition: Math.floor(Math.random()*7+1 ...
- 微信小程序之短连接 分享转发 点击短连接就可以直接打开小程序某个页面
微信小程序之短连接 分享转发 点击短连接就可以直接打开小程序某个页面 首先,小程序官网地址:https://developers.weixin.qq.com/miniprogram/dev/OpenA ...
- “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。
"完美"解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来. 参考文章: (1)"完美"解决微信小程序购物车抛物动画,在连续点击时出现计 ...
- 小程序地图插入图标后 怎么实现点击图标弹出窗口
1问题描述 本次博客的要解决的问题是:小程序地图插入图标后 怎么实现点击图标弹出窗口 如图: 2算法描述点击标记点获取数据 想要在地图等页面上显示弹窗,是使用的是marke的方法,点击标记点获取数据 ...
- 微信小程序API之发起请求request
一.首先考虑发起 HTTPS 网络请求. 在小程序/小游戏中使用网络相关的 API 时,需要注意下列问题 1. 服务器域名配置 每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名与进行网络通 ...
- 【uniapp小程序】request发起请求
这里写目录标题 写在前面 微信小程序和uniapp小程序区别
- 优化小程序中频繁下拉刷新导致的定位获取失败问题
getLocation() {return new Promise((resolve, reject) => {let that =thiswx.getLocation({type: " ...
- 微信小程序-音频播放-wx.createInnerAudioContext() 每次都是重复播放同一条录音
前言 在调试微信小程序音频播放时,刚开始我也是直接复制官方文档的实例: const innerAudioContext = wx.createInnerAudioContext() innerAudi ...
- 小程序近期频繁更新 背后原因全面解读
记者/作者:陈秋歌 如果您正密切关注微信小程序,希望享受个人观点.研发心得,欢迎联系记者陈秋歌(chenqg#csdn.net.微信:Rachel_qg). 3月27日晚,微信官方重磅宣布小程序新增六 ...
最新文章
- 网站性能越来越差怎么办?
- QIIME 2教程. 12数据筛选Filtering data(2021.2)
- java nginx tomcat_Nginx + Tomcat (java )服务器部署
- 电路上的ESR是什么意思?
- VC2008的运行库问题。
- Redis的过期键删除策略和内存淘汰机制
- 11个程序员最常犯的MySQL错误(PHP开发)
- uva11549Calculator Conundrum
- 计算机专业代码qian,专业分类号及学科代码对照表.doc
- 推荐5款好用的Java软件,初学者必看
- JS中this是什么
- 剑指Offer面试题11(Java版):数值的整数次方
- 哪几种MM最受男孩喜欢?(组图)
- 京东历史价格查询的方法是?
- MTK VILTE预研文档
- 图片上传被旋转,golang Exif 判断.jepg图片原始信息Orientation方向,并旋转,
- Smalltalk的变量
- 阿里巴巴数学竞赛详细解答(据说晋级的直接P8岗)
- 数字按键KEYPAD-PHONE的使用 附代码
- “犇牛”踏蹄而来 牛年首“牛”木马大爆发
热门文章
- C# ComboBox SelectedText属性和SelectedValue属性理解
- 八进制、十六进制浮点数-规格化数判断
- 前端vue 配合ali-oss上传文件到阿里云
- 关于OSI7层模型简单的理解
- 一次搞懂 CSS3 animation动画中forwards和both的区别
- 今天给大家介绍一下苹果手机的“播客”这个软件
- html radio
- java timestamp 比较_Timestamp基础知识及时间大小比较
- windows主机查询产品号和主机序列号
- [CVPR2019](D3DFR)Accurate 3D Face Reconstruction with Weakly-Supervised Learning From Single Image