微信小程序在onLoad函数中调用自定义函数出现undefined问题

data: {

},

getCenterLocation: function() {
this.mapCtx.getCenterLocation({
success: function(res) {
console.log(res.longitude)
console.log(res.latitude)
}
})
},
/**

  • 生命周期函数--监听页面加载 */ onLoad: function(options) { this.getCenterLocation(); },

2个回答

仔细检查下完整的代码,getCenterLocation写的位置不正确

qq_43304321
格里高利 .js文件下代码就这么多....应该写到哪里
大约一年之前 回复

onLoad: function () {//http://www.imooc.com/wenda/detail/486087 异步调用

// this.on();
var that = this
var wei=this.lc(function(wei){
  console.log(wei);
wx.request({
  url: 'http://localhost:3030/66/servlet/nr',

  method: 'get',
  data: {
    latitude: wei.latitude,
    //longitude:longitude,
    //longitude: wei.longitude
    longitude:wei.longitude,
  },
  header: {
    'content-type': 'application/json' // 默认值
    // 'Content-Type': 'application/x-www-form-urlencoded'
  },

  success: function (res) {

    that.setData({ nr6: res.data });
    //var json=JSON.parse(res.data);
    //console.log(res.data[0].id);
  },
  fail: function (res) {
    console.log(".....fail.....");
  }
  })
});

},
lc: function (wei) {
var self = this
wx.getLocation({
type: 'wgs84',

  success: function (res) {
    //console.log(res);
   // var latitude = res.latitude;
   // getApp().globalData.latitude = res.latitude;
   // getApp().globalData.longitude = res.longitude;
    //var longitude = res.longitude;
    //self.setData({
    //  latitude: latitude,
    //  longitude: longitude//buyong在上面的data中初始化变量,在这set
  //  })
    //console.log(latitude);
    //弹框
   wei(res);
   return wei;
  }
})

这是我的例子 希望能帮到有问题的人

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
微信小程序 在onLoad中启用其他方法(设置缓存)并取出缓存中数据 取不到值 求解决

//引入常量文件 let constant = require('../../js/constant.js'); //引入腾讯地图 let QQMapWX = require('../../js/qqmap-wx-jssdk.js'); //公共方法文件 let avery = require('../../js/avery.js'); //腾讯地图全局API let qqmapsdk; //获取应用实例 const app = getApp(); Page({ data: { imgUrls: [ 'https://images.unsplash.com/photo-1551334787-21e6bd3ab135?w=640', 'https://images.unsplash.com/photo-1551214012-84f95e060dee?w=640', 'https://images.unsplash.com/photo-1551446591-142875a901a1?w=640' ], indicatorDots: false, autoplay: false, interval: 5000, duration: 1000, hasUserInfo: false, latitude: null, //纬度 longitude: null, //经度 addressComponent: { nation: "", province: "", city: "", district: "", street: "", streetNumber: "", cityCcode: "" } }, onLoad: function() { wx.clearStorage(); //校验用户是否打开维护权限 avery.checkPositionAuthorization(); //初始化调用是否获取用户位置权限信息 this.getLocation(this); }, //获取位置名称 getLocation(that) { wx.getLocation({ type: 'wgs84', //wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标 altitude: true, //传入 true 会返回高度信息 success: function (res) { const latitude = res.latitude const longitude = res.longitude that.setData({ latitude: latitude, longitude: longitude }), // 实例化API核心类 qqmapsdk = new QQMapWX({ key: constant.mapKey }); //获取位置详细信息 qqmapsdk.reverseGeocoder({ location: { latitude: latitude, longitude: longitude }, success: function (location) { let result = location.result; //获取地址信息 let addressComponent = result.address_component; //获取城市Code let cityCode = result.ad_info.city_code; var cityInfo = { nation: addressComponent.nation, province: addressComponent.province, city: addressComponent.city, district: addressComponent.district, street: addressComponent.street, streetNumber: addressComponent.street_number, cityCcode: addressComponent.cityCcode, } //给默认值初始化 that.setData({ addressComponent: cityInfo }); //将城市信息放入缓存经度纬度 wx.setStorageSync('cityInfo', cityInfo); wx.setStorageSync('latitude', latitude); wx.setStorageSync('longitude', longitude); 这个方法设置缓存 avery.getWeatherNow('北京市', cityCode,'342','423423'); ///////这这里取不到 let sss = wx.getStorageSync("weatherNow"); console.log(JSON.stringify(sss)); **//并且这个打印会在下面的方法前面** }, fial(res) { //失败应该弹出模态框 wx.showModal({ title: '提示', content: '获取位置信息失败', success(res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } }); } }); } }); }, }) /////这是设置缓存的方法 function getWeatherNow( city,cityCode ,latitude, longitude){ wx.request({ url: constant.currentWeatherByCityId + cityCode, success:function(data){ wx.setStorageSync('weatherNow', data.data); console.log(JSON.stringify(data.data)) } }) };

微信小程序调用云函数,在success里给全局变量赋值,可是没能传递到函数外,请教大神怎么解决?

请大佬们教教我 ``` var list2 Page({ onLoad: function () { wx.cloud.callFunction({ name: "tiku", success(res){ list2 = res.result.word_list console.log(list2)//这里成功打印了res.result.word_list }, fail(res){ console.log("shibai") } }) console.log(list2)// 这里是undefine ```

微信小程序中,一个时钟案例中setTimeout是如何更新时间的?

真心感谢能够帮忙解答我的疑惑朋友,在这里先谢过了 /抱拳 ------ 刚开始学习微信小程序不久,在一个用 .wxs 格式化日期的案例中,突发奇想希望达到自动更新秒数的效果,结合网上借鉴的内容,产生以下三段代码,但不太明白其运行流程,希望解决以下问题: ## -------- ## 1.三个文件中代码运行的先后顺序? ## 2.js文件中自定义函数timing中second变量并不存于data中,它到底来自哪里? ## 3.js文件中自定义函数timing中 e.timing(e) 是什么意思?更新自己么? ## -------- js文件: ``` Page({ data: { }, onLoad: function (options) { this.timing(this) }, timing: function (e) { var time = setTimeout(function () { e.setData({second: e.data.second + 1}); e.timing(e); } , 1000) }, }) ``` wxs文件: ``` var timeFormat = function(){ var now = getDate(); hh = now.getHours(); mm = now.getMinutes(); ss = now.getSeconds(); timeStr = hh + ":" + mm + ":" + ss return timeStr; } module.exports = { timeFormat : timeFormat, } ``` .wxml文件: ``` <wxs src="tools.wxs" module="tools"/> <view> <view>{{tools.dateFormat()}}</view> <view>{{tools.timeFormat()}}</view> </view> ``` ## -------- ##代码效果: 一个数字时钟会自动更新,比如第一秒是这样: 20:19:59 下一秒就会变成: 20:20:00

微信小程序 页面跳转问题

微信小程序 不带返回按钮的页面跳转redirect不起作用 wxml代码如下: ``` <view class="weui-msg__desc"> 3秒后返回首页,如未跳转,请点击 <navigator url="../index/index" class="weui-msg__link" redirect>返回首页</navigator> </view> ``` 还有一种方式也不起作用: wxml代码如下: ``` <view class="weui-msg__desc"> 3秒后返回首页,如未跳转,请点击 <navigator hover-class="changestyle">返回首页</navigator> </view> ``` js代码如下: ``` wx.redirectTo({ url: 'pages/index/index' }) ``` 我知道,为了不让用户在使用小程序时造成困扰,微信小程序规定页面路径只能是五层,请尽避免多层级的交互方式。 那么我要在第五层的页面返回首页,怎么删除前面的四层呢?redirect只能删除当前的一层

微信小程序请求数据request

微信小程序请求开发平台的数据必须是https请求,但是我的本地是http,本地项目要换成https该怎么做啊

微信小程序,如何在主页面动态引用其他页面(包含四个文件)

问题描述:点击列表跳转到详情页时,详情面的基础信息是通过一个接口获取的,都是一样的数据。但是不同类型的设备实时数据显示和接口调用不同。怎么能根据基础数据中的设备类型字段来动态加载显示不同的实时值? 我用template时对就的脚本没有运行。 如图: onLoad: function (option) { wx.showLoading({ title: '正在拼命加载中...', }) this.setData({ devIdpk: option.id }); this.data.requestData.devIdpk=this.data.devIdpk; api.requestDeviceDetail(this.data.requestData).then((data) => { wx.hideLoading(); if (data.status == 1) { this.setData({ deviceInfo: data.row[0] }); var templateName=""; console.log(templateName); switch (this.data.deviceInfo.BType){ case 33: templateName = "DuanLuQi4"; break; case 35: templateName = "DuanLuQi3"; break; case 36: templateName = "DuanLuQi2"; break; case 37: templateName ="DuanLuQi1";break; } this.setData({ btype:templateName }); } }) }, ``` <import src="../DuanLuQi1/DuanLuQi1.wxml" /> <import src="../DuanLuQi2/DuanLuQi2.wxml" /> <import src="../DuanLuQi3/DuanLuQi3.wxml" /> <import src="../DuanLuQi4/DuanLuQi4.wxml" /> <!-- 详情 --> <view>型号:{{deviceInfo.devTyName}}</view> <view>编号:{{deviceInfo.devSignature}}</view> <template is="{{btype}}" data="{{devIdpk}}"></template> ``` 本人在学习小程序,目前小白一名,希望会的小哥哥小姐姐指点指点。谢谢。

微信小程序页面间传json字符串后使用JSON.parse方法无法解析json字符串

各位大神好,我最近在做毕业课设,在使用微信小程序端进行页面间的传值时发现原本已经实践成功过的使用url传值的方法突然失灵了,我将json字符串通过url传到目标页面没办法将它使用JSON.parse方法解析成json对象。 最后发现和之前成功过的页面比对,两个页面的onload方法下options下的参数不一样,成功的页面的options.title能够获取到而解析失败的页面使用options.title是没办法获取到值的 。这是什么原因呢?应该怎么解决? 下面放出图片对比 ![](https://img-ask.csdn.net/upload/201905/25/1558779759_666380.png) 这张图片是已经成功传值并且解析过的别的页面的onload方法 ![图片说明](https://img-ask.csdn.net/upload/201905/25/1558779799_504124.png) 这是我无法解析的页面截图 希望大神能帮我找出问题在哪里 小弟愿意请您喝一杯星巴克!!!!求求大家啦!!!(加我微信就可以喝哦)

微信小程序怎么调用快递鸟API的快递查询接口?

报错了!!怎么解决 thirdScriptError sdk uncaught third Error util is not defined ReferenceError: util is not defined at http://127.0.0.1:48141/appservice/pages/express/express.js:14:26 at require (http://127.0.0.1:48141/appservice/__dev__/WAService.js:1:1111566) at <anonymous>:26:7 at HTMLScriptElement.scriptLoaded at HTMLScriptElement.script.onload //查物流 //快递公司和,快递单号 var logistics = ["YD","1111111111"] //数据内容 var RequestData = "{'OrderCode':'','ShipperCode':'" + logistics[0] + "','LogisticCode':'" + logistics[1] + "'}" //utf-8编码的数据内容 console.log(RequestData) var RequestDatautf = encodeURI(RequestData) console.log("RequestDatautf:" + RequestDatautf) //签名 console.log(RequestData + 'apikey') var DataSign = encodeURI(util.Base64((util.md5(RequestData + 'apikey')))) console.log("DataSign:" + DataSign) if (logistics != null) { wx.request({ url: 'https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx', data: { //数据内容(进行过url编码) 'RequestData': RequestDatautf, //电商ID 'EBusinessID': '商户id', //请求指令类型:1002 'RequestType': '1002', //数据内容签名把(请求内容(未编码)+ApiKey)进行MD5加密,然后Base64编码,最后进行URL(utf-8)编码 'DataSign': DataSign, //请求、返回数据类型: 2-json; 'DataType': '2', }, header: { 'content-type': 'application/json' }, success: function (res) { console.log(res) that.setData({ data: res.data.Traces }) } }) }

微信小程序 canvasToTempFilePath问题。

# 微信小程序 ## canvasToTempFilePath问题 程序描述:用户可在画布上自由绘制黑色笔迹,点击确定后用canvasToTempFilePath保存! 问题描述:在开发工具上可以正常运行,墨迹保存完好,当使用真机调试或体验版本中没有墨迹,只是一张透明图。 ``` // 画布的触摸移动开始手势响应 start: function (event) { // console.log("触摸开始" + event.changedTouches[0].x) // console.log("触摸开始" + event.changedTouches[0].y) //获取触摸开始的 x,y let point = { x: event.changedTouches[0].x, y: event.changedTouches[0].y } touchs.push(point) }, // 画布的触摸移动手势响应 move: function (e) { let point = { x: e.touches[0].x, y: e.touches[0].y } touchs.push(point) if (touchs.length >= 2) { this.draw(touchs) } is_touch = false; }, // 画布的触摸移动结束手势响应 end: function (e) { console.log("触摸结束" + e) //清空轨迹数组 for (let i = 0; i < touchs.length; i++) { touchs.pop() } is_touch = true; can_pass = true }, // 画布的触摸取消响应 cancel: function (e) { console.log("触摸取消" + e) }, // 画布的长按手势响应 tap: function (e) { console.log("长按手势" + e) }, error: function (e) { console.log("画布触摸错误" + e) }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { //获得Canvas的上下文 content = wx.createCanvasContext('firstCanvas') //设置线的颜色 content.setStrokeStyle("#000") //设置线的宽度 content.setLineWidth(15) //设置线两端端点样式更加圆润 content.setLineCap('round') //设置两条线连接处更加圆润 content.setLineJoin('round') var r = Math.floor(Math.random()*9) var a = r+1 this.setData({ random:a, randoms: a, //signImage:"https://mhes.sxu.net.cn/Files/20190522/20190522163655299684.jpg" }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, //绘制 draw: function (touchs) { let point1 = touchs[0] let point2 = touchs[1] touchs.shift() content.moveTo(point1.x, point1.y) content.lineTo(point2.x, point2.y) content.stroke() content.draw(true) }, //清除操作 clearClick: function () { //清除画布 content.clearRect(0, 0, canvasw, canvash) // content.clearRect(0, 0, 500, 500) content.draw(true) is_touch = false can_pass = false }, //保存图片 saveClick: function () { is_touch = true if(can_pass == false) { wx.showModal({ title: 'MHE', content: '请完成绘制', showCancel: false, success: function (res) { if (res.confirm) { console.log('用户点击确定') is_touch = false } } }) return } var that = this that.setData({ random: "-", }) can_pass = false var that = this wx.canvasToTempFilePath({ x:0, y:0, width: canvasw, height: canvash, destWidth: canvasw, destHeight: canvash, fileType: 'png', canvasId: 'firstCanvas', quality : 0.5, success: function (res) { console.log(res.tempFilePath) that.setData({ signImage: res.tempFilePath }) wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success(result) { console.log(result) } }) wx.uploadFile({ url: '。。。。。。。。。。。。。', filePath: res.tempFilePath, name: 'uploadFile', success: function(res) { var datas = JSON.parse(res.data) console.log(datas) if(datas.rlt == 0){ console.log(that.data.randoms) wx.request({ url: app.weburl, data: { 。。。 }, header: {}, method: 'GET', dataType: 'json', responseType: 'text', success: function(res) { 。。。 }, fail: function(res) {}, complete: function(res) { console.log(that.data.num) }, }) } }, fail: function(res) {}, complete: function(res) {}, }) }, fail: function (res) { console.log(res) }, }) content.clearRect(0, 0, canvasw, canvash) content.draw(true) } ```

微信小程序自定义组件在获取到父组件传的值以后如何修改自定义内部数据??

父组件index.wxml stalls是个数组 count的属性是字符串 ``` <view class='stalls' wx:for="{{stalls}}" wx:key=''> <stars count="{{item.count}}" /> </view> </view> ``` 自定义组件 stars.wxml ``` <view class='stall'> <view>{{count}}</view> <block wx:for="{{solid}}" wx:key=""> <image src='../../images/star-solid.png'></image> </block> <block wx:for="{{half}}" wx:key=""> <image src='../../images/star-half.png'></image> </block> <block wx:for="{{hollow}}" wx:key=""> <image src='../../images/star-hollow.png'></image> </block> </view> ``` stars.js ``` Component({ properties: { count:String }, data: { // 这里是一些组件内部数据 solid: ' ', half: ' ', hollow: ' ', }, onLoad: function () { this.setData({ solid: parseInt(this.properties.count), half: Math.ceil(5 - this.aproperties.count) - (5 - self.properties.count), hollow: parseInt(5 - this.properties.count) }) }, }) ``` 自定义组件内部的data里的数据没有变化

微信小程序之高德地图API路线规划

#wxml代码# ``` <view class="flex-style"> <view class="flex-item active" bindtouchstart="goToCar">驾车</view> <view class="flex-item" bindtouchstart="goToWalk">步行</view> <view class="flex-item" bindtouchstart="goToBus">公交</view> <view class="flex-item" bindtouchstart="goToRide">骑行</view> </view> <view class="map_box"> <map id="navi_map" longitude="{{longitude}}" latitude="{{latitude}}" scale="12" markers="{{markers}}" polyline="{{polyline}}" show-location="true"></map> </view> <view class="text_box"> <view class="text">{{distance}}</view> <view class="text">{{cost}}</view> <view class="detail_button" bindtouchstart="goDetail">详情</view> </view> ``` #js代码# ``` var amapFile = require('../../utils/amap-wx.js'); var config = require('../../utils/config.js'); Page({ data: { markers: [{ iconPath: "../../img/mapicon_navi_s.png", id: 0, latitude:'', longitude:'', width: 23, height: 33 },{ iconPath: "../../img/mapicon_navi_e.png", id: 0, latitude:'', longitude:'', width: 24, height: 34 }], distance: '', cost: '', polyline: [] }, onLoad: function() { var that = this; var key = config.Config.key; var myAmapFun = new amapFile.AMapWX({key: key}); myAmapFun.getDrivingRoute({ success: function(data){ origin: data[0].longitude,data[0].latitude; destination: data[1].longitude,data[1].latitude; var marker = [{ latitude: data[0].latitude, longitude: data[0].longitude }, { latitude: data[1].latitude, longitude: data[1].longitude } ] that.setData({ markers: marker[0], latitude: data[0].latitude, longitude: data[0].longitude }); that.setData({ markers: marker[1], latitude: data[1].latitude, longitude: data[1].longitude }); var points = []; if(data.paths && data.paths[0] && data.paths[0].steps){ var steps = data.paths[0].steps; for(var i = 0; i < steps.length; i++){ var poLen = steps[i].polyline.split(';'); for(var j = 0;j < poLen.length; j++){ points.push({ longitude: parseFloat(poLen[j].split(',')[0]), latitude: parseFloat(poLen[j].split(',')[1]) }) } } } that.setData({ polyline: [{ points: points, color: "#0091ff", width: 6 }] }); if(data.paths[0] && data.paths[0].distance){ that.setData({ distance: data.paths[0].distance + '米' }); } if(data.taxi_cost){ that.setData({ cost: '打车约' + parseInt(data.taxi_cost) + '元' }); } } }) }, goDetail: function(){ wx.navigateTo({ url: '../navigation_car_detail/navigation' }) }, goToCar: function (e) { wx.redirectTo({ url: '../navigation_car/navigation' }) }, goToBus: function (e) { wx.redirectTo({ url: '../navigation_bus/navigation' }) }, goToRide: function (e) { wx.redirectTo({ url: '../navigation_ride/navigation' }) }, goToWalk: function (e) { wx.redirectTo({ url: '../navigation_walk/navigation' }) } }) ``` 怎么改才能让marker的两个标记变成活的经纬度,原来的高德地图API是两个写死的经纬度,[高德路线规划](http://lbs.amap.com/api/wx/guide/route/route),现在这个样子是我自己改的,摸索了微信小程序3天了,还不太懂,希望有大神能不吝赐教!!

怎么解决微信小程序数据删除后有自动出现问题?

微信小程序 通过删除按钮已经删除了,但是重新进入后删除的又出现了是怎么回事呢? ``` Delete: function (event) {//删除代码 var position = event.currentTarget.id // console.log("delete: " +position) var tempTask = this.data.desArr.splice(position, 1); this.setData({ desArr: this.data.desArr }) var link = "删除成功" wx.setStorageSync("01", this.data.desArr); wx.setClipboardData({ data: link, success: function (res) { wx.showToast({ title: '删除成功', icon: 'success' }) } }) }, ``` 整个js代码块 ``` //index.js //获取应用实例 const app = getApp() Page({ data: { today: '',//当天日期 image: '/images/eaef35dd160a667ff53b1778e8baf4b6.jpg',//背景图片 desArr: []//数据源数组 }, //Zha: 取得时间日期信息 getNowFormatDate() { //获取当天日期 var date = new Date(); var seperator1 = "-"; var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate return currentdate; }, //Zha: 点击进入添加note的详细界面 newButton() { //跳转页面 wx.switchTab({ url: '/pages/ssj/indexssj/indexssj' }) wx.redirectTo({ url: '/pages/ssj/indexssj/indexssj', }) }, onLoad: function (options) { //-监听页面加载 //获取缓存内容 this.setData({ desArr: wx.getStorageSync('oldText') }) if (this.data.desArr == null && this.data.desArr == '') { //如果没有缓存则为空 this.setData({ desArr: [] }) } //获取当天日期 var day = this.getNowFormatDate() this.setData({ today: day }) }, Delete: function (event) { var position = event.currentTarget.id // console.log("delete: " +position) var tempTask = this.data.desArr.splice(position, 1); this.setData({ desArr: this.data.desArr }) var link = "删除成功" wx.setStorageSync("01", this.data.desArr); wx.setClipboardData({ data: link, success: function (res) { wx.showToast({ title: '删除成功', icon: 'success' }) } }) }, onShow: function () { // 生命周期函数--监听页面显示 //获取当前缓存 var arrayA = wx.getStorageSync('oldText'); var isChange = wx.getStorageSync('isChange'); if (arrayA.length != this.data.desArr.length) { //如果数量改变从新赋值 this.setData({ desArr: arrayA }) } else if (isChange == 1) { wx.setStorageSync('isChange', 0); this.setData({ desArr: arrayA }) } }, onShareAppMessage: function () { // 用户点击右上角分享 return { title: '文笔记+', // 分享标题 desc: '我们的功能不仅笔记', // 分享描述 path: 'path' // 分享路径 } }, cancelTap(e) { //删除按钮 console.log(e) } }) ```

微信小程序,为什么clock不能调用,我想做一个时钟

```JavaScript Page({ /** * 页面的初始数据 */ data: { myDate: "testDate", myTime: "testTime", }, clock: function() { var timestamp = Date.parse(new Date()); //返回当前时间毫秒数 console.log(timestamp); timestamp = timestamp / 1000; //获取当前时间 var n = timestamp * 1000; var date = new Date(n); //年 var Y = date.getFullYear(); //月 var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1); //日 var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate(); //时 var h = date.getHours(); //分 var m = date.getMinutes(); //秒 var s = date.getSeconds(); var myDate = (Y + "-" + M + "-" + D); var myTime = (h + ":" + m + ":" + s); //console.log(myTime); this.setData({ myDate: myDate, myTime: myTime }) }, /** * 生命周期函数--监听页面加载 */ onLoad: function() { setInterval(function() { //循环执行代码 clock(); //console.log("----------"); }, 1000) //循环时间 这里是1秒 }, }) ```

微信小程序通讯录首字母索引效果,车辆品牌选择列表。获取失效?

微信小程序通讯录首字母索引效果,车辆品牌选择列表。获取失效?在上周的时候都能正常使用,这周一 一来测试就报502. 报错代码: POST http://api.besttool.cn/?c=Car&a=brandlist 502 (Bad Gateway) 源代码: var app = getApp(); Page({ data: { list:[] }, onLoad: function (options) { var that = this; wx.request({ url: 'http://api.besttool.cn/?c=Car&a=brandlist', method: 'post', header: { 'content-type': 'application/x-www-form-urlencoded' }, data: { appid: 1, secret: 'd90824a5a8224fd7bb4fdffd331c62aa' }, success(res) { console.log(res); that.setData({ list: res.data.brandlist }); } }) }, chooseLetter(e) { this.setData({ curLetter: null }); var letter = e.currentTarget.dataset.letter; console.log(letter); // 查找对应的id var id = "#letter" + letter; const query = wx.createSelectorQuery() query.select(id).boundingClientRect() query.selectViewport().scrollOffset() query.exec(function (res) { wx.pageScrollTo({ scrollTop: res[0].top + res[1].scrollTop, duration: 300 }) }) }, isCar:function(e){ var CarName = e.currentTarget.id; app.globalData.chooseCar = CarName; wx.navigateTo({ url: '../addMyCar/addMyCar', }) } })

微信小程序云数据库根据id删除数据怎么操作?

这是得到数据库的第一条数据的_id,id信息可以打印出来 ``` const ab = wx.cloud.database() ab.collection("choose").get({ success: res => { this.setData({ id: res.data[0]._id }) console.log("id信息",this.data.id) }, fail: err => { } }) ``` 这是删除代码,点击删除后显示删除失败 ``` ab.collection('choose').doc(id).remove({ success: res => { wx.showToast({ title: '删除成功', }) this.onLoad()//删除成功重新加载 }, fail: err => { wx.showToast({ title: '删除失败', }) } }) ``` 两块放在一个方法下应该没问题吧,难道是权限问题吗,必须用云函数才行?求大佬解答,非常感谢!

微信小程序 如何读取数据库中当前登录用户对应的数据,并列表显示

初学者想做一个反馈的小程序,目前已经完成了反馈页面(通过微信名作为用户名传递反馈信息到数据库)和PHP后台页面,现在想在小程序中添加一个类似于个人中心的页面,能查看当前登录的微信用户所提交的反馈。 目前只会全部显示列表,尝试了如下代码,但是提示没有定义nick _ name,请问下如何定义,代码如下: my.js ``` Page({ onLoad: function (res) { wx.request({ url: 'https://www.xxx.cn/getlist.php?nickname='+nick_name, //连接服务器从表中查询出学生信息的接口 data:{ }, header: { 'content-type': 'application/json' }, success: function (res) { console.log(res.data), that.setData({ list: res.data,//将表中查询出来的信息传给list }) } }) }, data: { list: [] //将list的数据传到前台wxml页面中 }, }) ``` my.wxml ``` <view class="" wx:for="{{list}}" wx:key="nickname" date-id="{{item.nickname}}">   <view class="weui-cell"> <view > <image src="https://www.xxx.cn/upload/{{item.filename}}"></image> </view> <view > <view class="userid"><text>微信名:{{item.nickname}}</text><text>工号:{{item.userid}}</text><text>姓名:{{item.username}}</text><text>提交时间:{{item.fbtime}}</text></view> <view class="username">反馈:{{item.userliuyan}}</view> </view> </view> </view> ``` 然后后台getlist.php如下: ``` <?php //$name=$_GET["name"];//接收参数 $hostname_conn = "xxx"; $database_conn = "xxx";//自己建数据库名 $username_conn = "xxx"; $password_conn = "xxx"; //连接MYSQL数据库 $conn = mysqli_connect($hostname_conn, $username_conn, $password_conn,$database_conn)or trigger_error(mysqli_error(),E_USER_ERROR); if(!$conn){ echo "连接不成功!"; } $nickname =isset($_GET['nickname'])?$_GET['nickname']:''; $sql = "SELECT * FROM test where nickname='$nickname'"; mysqli_query($conn, "set names 'utf8'"); $result = mysqli_query($conn, $sql); class Article{ public $nickname; public $userid; public $username; public $userliuyan; public $filename; } $data = array(); if (mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_assoc($result)) { $article=new Article(); $article->nickname=$row["nickname"]; $article->userid=$row["userid"]; $article->username=$row["username"]; $article->userliuyan=$row["userliuyan"]; $article->filename=$row["filename"]; $data[] = $article; } echo json_encode($data,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);//将请求结果转换为json格式 }   ?> ``` 求大神救助,或者有没有其他方法能解决

微信小程序云数据库取值问题,我不知如何把取到的值传递出来

test1.js 如下: onLoad: function ( ) { const db = wx.cloud.database() const testDB = wx.cloud.database({ env: 'test' }) const kmwlw_sm = db.collection('test_db') db.collection('test_db').doc('kkdfd4tgtt_').get({ success: function (res) { // res.data 包含该记录的数据 console.log(res.data.content) var a1=res.data.content } }) test1.wxml里面:《text class="post-content"》{{a1}}《/text》 说明:{{a1}}获取不到console.log(res.data.content)可以显示出来的字符 // 上面是函数(在test.js内), 云开发模式,取云数据库里面数据,函数内是获取成功了, // console.log(res.data.content) 显示出来的字符是正确的,我的本意是想用a1变量传递 // 数值出去,在test1.wxml上面使用,结果当然是没有用,页面没有任何变化 // 我知道是自己的思路问题,但找不到正确的方法,请指教 说明:有个符号在这里无法显示,用《 》 这个来代替了

微信小程序request请求后端数据返回undefined是什么原因

报错: ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555571848_169965.png) detail.js onLoad: function (options) { let _id = options._id; console.log("详情页接收的_id值:" + _id); //请求文章详情页 wx.request({ url: 'http://localhost/home.html?_id=' + _id, headers: { 'Content-Type': 'application/json' }, success: function(res) { let content = res.data.content; console.log("文章详情页如下:") console.log(content); } }) }, detail.wxml ``` <text>{{content}}</text> ``` 本地数据: ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555571758_149676.png)

微信小程序录音上传返回 statusCode: 500

【已解决】 服务端的地址写法有误 导致不能接受 1.菜鸡写的小程序 中间也是血泪无数 望大神解答疑惑 wx.request正常上传的 但是录音文件无法上传 ![图片说明](https://img-ask.csdn.net/upload/201809/28/1538128796_247019.jpg) ![图片说明](https://img-ask.csdn.net/upload/201809/28/1538128695_221224.jpg) 2.代码如下 JS ``` //index.js //获取应用实例 const app = getApp() const recorderManager = wx.getRecorderManager() const innerAudioContext = wx.createInnerAudioContext() var tempFilePath var num = 0 var getPathArr = tempFilePath; Page({ data: { audioText: 'lalalalal', btn_Text: '开始录音', clickType: 'primary', disType: '' }, //开始录音的时候 startAudio: function() { const options = { duration: 120000, //指定录音的时长,单位 ms sampleRate: 16000, //采样率 numberOfChannels: 1, //录音通道数 encodeBitRate: 96000, //编码码率 format: 'acc', //音频格式,有效值 aac/mp3 frameSize: 50, //指定帧大小,单位 KB } //开始录音 recorderManager.start(options); recorderManager.onStart(() => { console.log('recorder start') }) //错误回调 recorderManager.onError((res) => { console.log(res); }) //变形 num++; var result = num + 1; if (num == 0) { this.setData({ btn_Text: '开始录音', clickType: 'primary', disType: '' }) } else { this.setData({ btn_Text: '重新录音', clickType: 'warn', disType: 'true' }) } }, //停止录音 stopAudio: function() { recorderManager.stop(); recorderManager.onStop((res) => { this.tempFilePath = res.tempFilePath; console.log('停止录音', res.tempFilePath) const { tempFilePath } = res }, ); this.setData({ disType: '' }) }, //播放声音 playAudio: function() { innerAudioContext.autoplay = true innerAudioContext.src = this.savedFilePath, innerAudioContext.onPlay(() => { console.log('开始播放') }) innerAudioContext.onError((res) => { console.log(res.errMsg) console.log(res.errCode) }) }, upload: function() { wx.request({ url: 'http://127.0.0.1:5000/upload', data: { audioText: 'lalalalal' }, header: { 'content-type': 'text/html' }, success: function(res) { console.log(res.data) } }) wx.uploadFile({ url: 'http://127.0.0.1:5000/upload', filePath: this.tempFilePath + "", name: 'the_file', header: { "Contect-Type": "mutipart/form-data" }, formData: { 'the_file': 'Music' }, success: function(res) { console.log(res); wx.showToast({ title: 'OK', icon: 'success', duration: 2000 }) }, fail: function(res) { console.log(res) }, complete: function(res) { } }) }, onLoad: function(options) { console.log(recorderManager) }, longPress: function() { console.log('longTap....') }, touchStart: function() { console.log('touchStart....') this.startAudio(); }, touchEnd: function() { console.log('touchEnd....') this.stopAudio() }, }) ```

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

删库了,我们一定要跑路吗?

在工作中,我们误删数据或者数据库,我们一定需要跑路吗?我看未必,程序员一定要学会自救,神不知鬼不觉的将数据找回。 在 mysql 数据库中,我们知道 binlog 日志记录了我们对数据库的所有操作,所以 binlog 日志就是我们自救的利器。 接下来就来开启程序员自救之路。 想要自救成功,binlog 这把利器一定要好,在自己之前,我们一定要确定我们有 binlog 这把利器,以下就是确保有 bi...

再不跳槽,应届毕业生拿的都比我多了!

跳槽几乎是每个人职业生涯的一部分,很多HR说“三年两跳”已经是一个跳槽频繁与否的阈值了,可为什么市面上有很多程序员不到一年就跳槽呢?他们不担心影响履历吗? PayScale之前发布的**《员工最短任期公司排行榜》中,两家码农大厂Amazon和Google**,以1年和1.1年的员工任期中位数分列第二、第四名。 PayScale:员工最短任期公司排行榜 意外的是,任期中位数极小的这两家公司,薪资...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

现代的 “Hello, World”,可不仅仅是几行代码而已

作者 |Charles R. Martin译者 | 弯月,责编 | 夕颜头图 |付费下载自视觉中国出品 | CSDN(ID:CSDNnews)新手...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

立即提问
相关内容推荐