微信小程序getApp()方法返回undefined 20C

微信小程序自己定义的js页面调用getApp()方法,返回undefined,请问可能是什么原因导致的

2个回答

参考下

getApp()
我们提供了全局的getApp()函数,可以获取到小程序实例。

// other.js
var appInstance = getApp()
console.log(appInstance.globalData) // I am global data
注意:

App()必须在app.js中注册,且不能注册多个。

不要在定义于App()内的函数中调用getApp(),使用this就可以拿到app实例。

不要在onLaunch的时候调用getCurrentPage(),此时page还没有生成。

通过getApp()获取实例之后,不要私自调用生命周期函数。

summer942zjb
叽叽喳喳乱七八糟 App()必须在app.js中注册,且不能注册多个 这个是什么意思呢?
大约一年之前 回复

App()必须在app.js中注册,且不能注册多个 这个是什么意思呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
微信小程序录音上传返回 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() }, }) ```

微信小程序openid存储的问题

请各位大神们告知一下,在小程序云开发上,获取openid。是每次需要的时候都调用云函数wxContent进行获取,还是在app.js页面中的onLaunch方法中获取openid并存储,然后其他页面用getApp()方法来获取openid。

小程序连接数据库,返回undefined错误 数据上传不了

1. 在小程序做登录注册功能,但注册这块,小程序一直返回undefined,后台数据也没有显示成功! 2.myeclisep和数据库sql 都没有问题。怀疑是小程序这边的问题,为什么上传不了数据 3. 这是JS文件 var app = getApp(); Page({ data: { username: null, password: null, jieguo: null }, dian: function (e) { var that = this; that.username = e.detail.value.name; that.password = e.detail.value.password; console.log(that.username); wx.request({ url: 'http://localhost:8080/mini', data: { name: that.username, password: that.password }, header: { 'content-type': 'application/json' // 默认值 }, success: function (res) { console.log(res.data[0]); console.log(res.data[0].jieguo); that.jieguo = res.data[0].jieguo; if (that.jieguo == 1) { wx.redirectTo({ url: "../login/login" }) } }, fail: function (res) { console.log(".....fail....."); } }) }, usernameInput: function (event) { console.log(event.detail.value); this.setData({ username: event.detail.value }) }, passwordInput: function (event) { this.setData({ password: event.detail.value }) } }) 5.

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

微信小程序 通过删除按钮已经删除了,但是重新进入后删除的又出现了是怎么回事呢? ``` 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) } }) ```

微信小程序 在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)) } }) };

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

微信小程序通讯录首字母索引效果,车辆品牌选择列表。获取失效?在上周的时候都能正常使用,这周一 一来测试就报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', }) } })

微信小程序中如何设置按钮进行计数与清零操作?

index.js代码如下: var app = getApp() Page({ data: { index: 0, }, jishu: function () { var that = this; this.setData({ index: that.data.index + 1 }) qingling: function() { var that = this; this.setDada({ index: that.dada.index=0}) } } }) index.wxml代码如下: <view>{{index+1}}</view> <button bindtap="qingling">清零</button> <button bindtap="jishu">计数</button> 请问为什么会出错?加上了清零之后为什么会运行不了?

微信小程序扫一扫成功以后为什么没有跳转到另一个页面,而是直接在当前页面?

![图片说明](https://img-ask.csdn.net/upload/201812/11/1544491226_937328.png) // pages/home/home.js var app = getApp(); Page({ data: { show: "", }, onLoad: function () { console.log('onLoad') }, click: function () { var that = this; var show; wx.scanCode({ success: (res) => { this.show = "--result:" + res.result + "--scanType:" + res.scanType + "--charSet:" + res.charSet + "--path:" + res.path; this.show = res.result; that.setData({ show: this.show }) wx.navigateTo({ url: '../artcle1/artcle1' }) }, fail: (res) => { wx.showToast({ title: '失败', icon: 'success', duration: 2000 }) }, complete: (res) => { }, }, ) },

微信小程序 即时聊天IM,怎么将接受的消息渲染到UI上?

``` // pages/person/person.js var app = getApp() import TIM from 'tim-wx-sdk'; import COS from "cos-wx-sdk-v5"; let options = { SDKAppID: // 接入时需要将0替换为您的即时通信应用的 SDKAppID }; // 创建 SDK 实例,TIM.create() 方法对于同一个 SDKAppID 只会返回同一份实例 let tim = TIM.create(options); // SDK 实例通常用 tim 表示 Page({ /** * 页面的初始数据 */ data: { p_identity: "", message: "" }, onGotUserInfo: function(e) { var that = this; // console.log(e.detail.errMsg) console.log(e.detail.userInfo) // console.log(e.detail.rawData) if (e.detail) { getApp().globalData.userInfo = e.detail.userInfo; that.setData({ userInfo: e.detail.userInfo, userInfoFlag: true, modalHidden: true }) } else console.log(1234); wx.navigateTo({ url: '../register/register', }) }, goto_upload_ps_info: function(e) { wx.navigateTo({ url: '../Upload_personal_information/Upload_personal_information', }) }, tim_login: function(e) { wx.request({ url: 'https://www.ffgbookbar.cn/zhaopin/public/index.php/index', //仅为示例,并非真实的接口地址 data: { id: app.globalData.userid }, header: { 'content-type': 'application/json' // 默认值 }, method: 'get', success(res) { console.log(res) //从服务器返回 console.log(app.globalData.userid); console.log("123"); app.globalData.usersig = res.data.split("verify ")[0]; let promise = tim.login({ userID: app.globalData.userid, userSig: app.globalData.usersig }); promise.then(function (imResponse) { console.log(imResponse.data); // 登录成功 }).catch(function (imError) { console.warn('login error:', imError); // 登录失败的相关信息 }); } }) }, send_payload:function(e){ // 发送文本消息,Web 端与小程序端相同 // 1. 创建消息实例,接口返回的实例可以上屏 let message = tim.createTextMessage({ to: 'user0', conversationType: TIM.TYPES.CONV_C2C, payload: { text: 'nihao!!!!!!' } }); // 2. 发送消息 let promise = tim.sendMessage(message); promise.then(function (imResponse) { // 发送成功 console.log("send success!"); console.log(imResponse); }).catch(function (imError) { // 发送失败 console.warn('sendMessage error:', imError); }); }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { console.log(app.globalData.identity == '面试官') this.setData({ p_identity: getApp().globalData.identity }) }, }) let onMessageReceived = function (event) { // event.data - 存储 Message 对象的数组 - [Message] console.log("收到即时消息!"); console.log(event.data); console.log(event.data[0].payload.text); }; tim.on(TIM.EVENT.MESSAGE_RECEIVED, onMessageReceived); var i=0; let onConversationListUpdated = function (event) { console.log("收到离线消息!"); console.log(event.data); console.log(event.data[i].lastMessage.messageForShow);// 包含 Conversation 实例的数组 i++; }; tim.on(TIM.EVENT.CONVERSATION_LIST_UPDATED, onConversationListUpdated); ``` 怎么将 ``` let onConversationListUpdated = function (event) { console.log("收到离线消息!"); console.log(event.data); console.log(event.data[i].lastMessage.messageForShow);// 包含 Conversation 实例的数组 i++; }; tim.on(TIM.EVENT.CONVERSATION_LIST_UPDATED, onConversationListUpdated); ``` 里的数据渲染到UI上。setdata()都不能用,用了会报错

小程序如何将文本框里的数据上传到云数据库中?

如题,在.add()里面要怎样写呢?求大佬指点 ``` wx.cloud.init(); const db = wx.cloud.database(); var app = getApp() Page({ data: { focus: false, list:[], title:'', content1:'' }, // 获取文本框内容 getTitle(e) { this.setData({ title: e.detail.value }) }, getContent1(e) { this.setData({ content1: e.detail.value }) }, success: function (res) { console.log(res) that.setData({ title: "", content1: "" }) } }) db.collection('data').add({ // data 字段表示需新增的 JSON 数据 data:{ title: title, content1: content1, }, success(res) { // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id console.log(res) } }) ```

小程序中全局变量和全局的请求访问传递的参数有什么区别?

小程序中页面传值,一开始使用的是下面这段代码: ```javascript //获取全局对象 var app=getApp(); //设置全局的请求访问传递的参数 app.requestDetailid=id; //使用时,获取全局变量ID var openid = getApp().requestDetailid; ``` 后来通过在app.js设置globalData进行传值: ```javascript var app = getApp(); var id = app.globalData.id ``` 弄不清楚这两种设置全局变量有什么区别,实际操作中都可以正常传值

小程序问题 关于时间转化问题

先上圖 ![图片说明](https://img-ask.csdn.net/upload/201808/02/1533143573_303598.jpg) 大佬们看一下 我图片上方是开发工具显示 但是到了手机端 却变成刚刚 我也查了一下 值没有传进去显示null, 这我就不懂了 我全程打印 都是对的 就是手机一预览就接不到值 麻烦大神帮我看看 下面是我的代碼 var Api = "https://www.xiabiapp.com" var app = getApp() Page({ data: { Nav: ['送贝', '任务'], NavTab: 0, giftPage: [], reward: [], pageNum: 1, createDate: [], }, onLoad: function(options) { }, onShow(){ var _this = this wx.request({ url: Api + '/gift/giftPage', data: { pageNum: 1, companyId: app.globalData.companyId }, header: { 'Content-Type': 'application/json' }, method: 'POST', success(res) { console.log(res.data.list) var Time = [] var Timeago = [] var gift = res.data.list for (var i = 0; i < gift.length; i++) { var stringTime = gift[i].createDate var timestamp2 = new Date(stringTime).getTime() Time.push(timestamp2) _this.setData({ Timeago: Time }) } console.log(Time) _this.setData({ giftPage: res.data.list, }) } }) wx.request({ url: Api + "/task/taskPage", data: { companyId: app.globalData.companyId, pageNum: 1 }, header: { "content-type": "application/json" }, method: "POST", success(res) { var rcreateDate = [] for (var i = 0; i < res.data.list.length; i++) { var rstringTime = res.data.list[i].createDate; var rtimestamp2 = new Date(rstringTime).getTime(); rcreateDate.push(rtimestamp2) } var rTimeago = [] for (var k = 0; k < rcreateDate.length; k++) { rTimeago.push(getDateDiff(rcreateDate[k])) } _this.setData({ reward: res.data.list, rTimeago: rTimeago }) } }) }, NavTab: function(e) { var NavTab = e.currentTarget.dataset.id this.setData({ NavTab: NavTab }) var _this = this if (NavTab == 0) { wx.request({ url: Api + '/gift/giftPage', data: { pageNum: 1, companyId: app.globalData.companyId }, header: { 'Content-Type': 'application/json' }, method: 'POST', success(res) { console.log(res) var createDate = [] for (var i = 0; i < res.data.list.length; i++) { var stringTime = res.data.list[i].createDate; var timestamp2 = new Date(stringTime).getTime(); createDate.push(timestamp2) } var Timeago = [] for (var k = 0; k < createDate.length; k++) { Timeago.push(getDateDiff(createDate[k])) } _this.setData({ giftPage: [], pageNum: 1, Timeago: Timeago }) _this.setData({ giftPage: res.data.list, Timeago: Timeago }) } }) } else { wx.request({ url: Api + "/task/taskPage", data: { companyId: app.globalData.companyId, pageNum: 1 }, header: { "content-type": "application/json" }, method: "POST", success(res) { var rcreateDate = [] for (var i = 0; i < res.data.list.length; i++) { var rstringTime = res.data.list[i].createDate; var rtimestamp2 = new Date(rstringTime).getTime(); rcreateDate.push(rtimestamp2) } var rTimeago = [] for (var k = 0; k < rcreateDate.length; k++) { rTimeago.push(getDateDiff(rcreateDate[k])) } _this.setData({ reward: [], pageNum: 1, rTimeago: rTimeago }) _this.setData({ reward: res.data.list, rTimeago: rTimeago }) } }) } }, onReachBottom(e) { var NavTab = this.data.NavTab if (NavTab == 0) { var pageNum = this.data.pageNum this.setData({ pageNum: pageNum += 1 }) var giftPageArray = [] var _this = this wx.request({ url: Api + "/gift/giftPage", data: { companyId: app.globalData.companyId, pageNum: pageNum }, header: { "content-type": "application/json" }, method: "POST", success(res) { console.log(res) giftPageArray = _this.data.giftPage.concat(res.data.list) _this.setData({ giftPage: giftPageArray }) } }) } else if (NavTab == 1) { var pageNum = this.data.pageNum this.setData({ pageNum: pageNum += 1 }) var rewardArray = [] var _this = this wx.request({ url: Api + "/task/taskPage", data: { companyId: app.globalData.companyId, pageNum: pageNum }, header: { "content-type": "application/json" }, method: "POST", success(res) { rewardArray = _this.data.reward.concat(res.data.list) _this.setData({ reward: rewardArray }) } }) } }, giftbay(e) { wx.navigateTo({ url: '/pages/selectFrom/selectFrom', }) }, getReward(e) { wx.navigateTo({ url: '../reward/reward', }) }, Togift(e) { var index = e.currentTarget.dataset.index var giftPage = this.data.giftPage[index] var acceptAvatarUrl = giftPage.acceptAvatarUrl var acceptNickName = giftPage.acceptNickName var acceptUserId = giftPage.acceptUserId var userId = app.globalData.userId wx.navigateTo({ url: '/pages/giftbay/giftbay?acceptNickName=' + acceptNickName + '&acceptUserId=' + acceptUserId + '&acceptAvatarUrl=' + acceptAvatarUrl, }) }, getImg(e) { if (this.data.NavTab == 0) { var giftPage = this.data.giftPage var index = e.currentTarget.dataset.index var imgList = [] imgList.push(giftPage[index].imageUrl) wx.previewImage({ current: giftPage[index].imageUrl, urls: imgList }) } else if (this.data.NavTab == 1) { var reward = this.data.reward var index = e.currentTarget.dataset.index var imgList = [] imgList.push(reward[index].imageUrl) wx.previewImage({ current: reward[index].imageUrl, urls: imgList }) } // for (var i = 0; i < giftPage.length; i++){ // imgList.push(giftPage[i].imageUrl) // } }, getTask(e) { var taskId = e.currentTarget.dataset.id var index = e.currentTarget.dataset.index var _this = this wx.request({ url: Api + '/task/accept', data: { taskId: taskId, acceptUserId: app.globalData.userId }, header: { 'Content-Type': 'application/json' }, method: 'POST', success(res) { wx.showToast({ title: res.data.msg, icon: 'none', duration: 3000, }) _this.onLoad() } }) }, refresh(e) { var _this = this wx.request({ url: Api + "/task/taskPage", data: { companyId: app.globalData.companyId, pageNum: 1 }, header: { "content-type": "application/json" }, method: "POST", success(res) { _this.setData({ reward: res.data.list, }) } }) }, ToSign(e) { wx.navigateTo({ url: '/pages/sign/sign?userId=' + app.globalData.userId, }) }, }) function getDateDiff(dateTimeStamp) { var result; var minute = 1000 * 60; var hour = minute * 60; var day = hour * 24; var halfamonth = day * 15; var month = day * 30; var now = new Date().getTime(); var diffValue = now - dateTimeStamp; if (diffValue < 0) { return; } var monthC = diffValue / month; var weekC = diffValue / (7 * day); var dayC = diffValue / day; var hourC = diffValue / hour; var minC = diffValue / minute; if (monthC >= 1) { if (monthC <= 12) result = "" + parseInt(monthC) + "月前"; else { result = "" + parseInt(monthC / 12) + "年前"; } } else if (weekC >= 1) { result = "" + parseInt(weekC) + "周前"; } else if (dayC >= 1) { result = "" + parseInt(dayC) + "天前"; } else if (hourC >= 1) { result = "" + parseInt(hourC) + "小时前"; } else if (minC >= 1) { result = "" + parseInt(minC) + "分钟前"; } else { result = "刚刚"; } return result; };

请教大神,这段代码为什么没有写入数据库呢?

1、最近学习小程序,发现个问题,不知怎么解决,请大神们帮忙!完整的js代码如下: ``` const db = wx.cloud.database() const _ = db.command var app = getApp() const util = require('../../util/util.js'); Page({ data: { defaultImg: '../../image/icon2.png', data: {}, shareIconUrl: '../../image/zan.png', shareIconUrl1: '../../image/zan1.png', commentTxt: '', itemId: '', comments: [], isShareTip: false, voteFlag: false }, onLoad: function (options) { if (options.isShareTip){ this.setData({ isShareTip: true }) } if (options.id){ this.setData({ itemId: options.id }) console.log(options.id) this.search(options.id) } }, search: function(id){ let idNum = 0; if (Number(id) || Number(id) == 0) idNum = Number(id) else idNum = this.data.itemId; db.collection('sgclan').where({ id: _.eq(idNum) }).get({ success: res => { console.log(res) let D = res.data; this.setData({ data: D[0] }) }, fail: function (e) { console.log(e) } }) }, inputHandler: function(e){ console.log(e) this.setData({ commentTxt: e.detail.value }) }, confirm: function(){ const db = wx.cloud.database() const _ = db.command let userOpenId = wx.getStorageSync('openId') let d = new Date(),data = {}; let arr = util.typeC(this.data.data.comment) == 'array' ? this.data.data.comment : new Array(this.data.data.comment); if (this.data.commentTxt){ data = { comment: this.data.commentTxt, username: wx.getStorageSync('username'), time: d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate(), userId: wx.getStorageSync('userId'), id: this.data.itemId, avatar: wx.getStorageSync('avatar') } arr.push(data) }else wx.showToast({ title: '请填写内容', icon:'none' }) if (!userOpenId){ wx.showToast({ title: '您还未登录,请先登录', icon: 'none' }) setTimeout(()=>{ wx.switchTab({ url: '../wode/wode', }) }, 1000) }else{ var cn = this.data.data.comment.length + 1; db.collection('comments').add({ data: { id: data.userId, userId: data.userId, text: data.comment, _openid: userOpenId }, success: res=>{ console.log('comment新增成功') }, fail: e=>{ console.log('comment新增失败') } }) wx.cloud.callFunction({ name: 'comment', data: { comment: arr, id: this.data.itemId, commentNum: cn }, success: res => { wx.showToast({ title: '评论成功', }) this.search() }, fail: err => { wx.showToast({ icon: 'none', title: '评论失败', }) console.error('[云函数] [comment] 调用失败:', err) } }) } console.log(data) }, navBack: function(){ wx.switchTab({ url: '../wenda/wenda', }) }, /** * 用户点击右上角分享 */ onShareAppMessage: function (res) { console.log(res) var that = this; if (res.from === "button") { wx.cloud.callFunction({ name: 'shareHandler', data: { id: res.target.dataset.qiuid, shareNum: Number(res.target.dataset.sharenum) + 1 }, success: e => { wx.showToast({ title: '分享成功', }) that.search(that.data.pageId) console.log(e) }, fail: e => { console.log(e) } }) return { title: "我发现了一个豹纹守宫爱好者的小程序,分享给你 --守宫CLAN", path: '/pages/itemDetail/itemDetail?id=' + res.target.dataset.qiuid + '&isShareTip=1', imageUrl: '' } } }, vote: function (e) { if (!this.data.voteFlag){ var id = Number(e.currentTarget.dataset.id), vote = Number(e.currentTarget.dataset.vote) ; var that = this, D = this.data.data; D.vote = vote + 1 wx.cloud.callFunction({ name: 'vote', data: { data: { vote: vote + 1, id: id, } }, success: res => { wx.showToast({ title: '点赞成功', }) that.setData({ data: D, voteFlag: true }) }, fail: err => { wx.showToast({ icon: 'none', title: '点赞失败', }) console.error('[云函数] [zan] 调用失败:', err) } }) }else{ wx.showToast({ title: '你已经投过票了', icon: 'none' }) } }, }) ``` 3、这段代码那个地方错误了?老是提醒“comment新增失败” ```var cn = this.data.data.comment.length + 1; db.collection('comments').add({ data: { id: data.userId, userId: data.userId, text: data.comment, _openid: userOpenId }, success: res=>{ console.log('comment新增成功') }, fail: e=>{ console.log('comment新增失败') } ```

我已经在app.js文件里面定义了全局变量,在页面赋值的时候报未定义这个错误,这到底是什么原因

![图片说明](https://img-ask.csdn.net/upload/201910/28/1572245371_247982.png)![图片说明](https://img-ask.csdn.net/upload/201910/28/1572245377_400056.png)![图片说明](https://img-ask.csdn.net/upload/201910/28/1572245386_468867.png) 大神们求解答,我已经在app.js文件里面定义了全局变量,在页面赋值的时候报未定义这个错误,这到底是什么原因 急!!!谢谢

h5和app交互,求大神给答案!!!

function goUrl(){ var i =0; sessionStorage.setItem('goto_url','<%=goto_url%>'); channelCode = window.sessionStorage.getItem("channelCode"); if (channelCode == 18){//手机银行跳转,登陆 debugger ; alert("1"); if(window.localStorage.resId1 == 1){ //安卓 alert("2"); window.app_score.toLoginPhone();//调用安卓的原生方法 window.loginInPhone=loginInPhone;//回调方法 function loginInPhone(data){ if(data != '' && data != null && data != undefined) { if(typeof(data) == "string"){ data = JSON.parse(data); } } } }else{//IOS alert("3"); function setupWebViewJavascriptBridge(callback) { if(window.BOCWebViewJavascriptBridge) { return callback(BOCWebViewJavascriptBridge); }else{ document.addEventListener('WebViewJavascriptBridgeReady',function(){callback(BOCWebViewJavascriptBridge);},false); } if(window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); } window.WVJBCallbacks = [callback]; var WVJBIframe = document.createElement('iframe'); WVJBIframe.style.display = 'none'; WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__'; document.documentElement.appendChild(WVJBIframe); setTimeout(function() { document.documentElement.removeChild(WVJBIframe); }, 0); }//以上的代码是固定的,只要是交互就需要写 setupWebViewJavascriptBridge(function(bridge){ //所有的和app交互的代码都在这方法填写 bridge.registerHandler('loginInPhone',function(data,responseCallback){//注册回调方法 if(data != '' && data != null && data != undefined) { if(typeof(data) == "string"){ data = JSON.parse(data); } } //toLoginPhone为ios端register的handleName bridge.callHandler('toLoginPhone', function(){}); //调用手机银行的原生方法 //网上说calllback是处理返回数据的方法,可是没有啊!!!! bridge.init(function(message,responseCallback){ var data = {'Javascript Responds':'Wee!'}; responseCallback(data); }); }); } )} var ticket = data.ticketInfo;//票 var clientId = data.CID;//客户id var slientId = data.SID;//用户id var card = data.card; //window.location.href="${pageContext.request.contextPath}/mobilePage/login/login.jsp"; window.location.href="${pageContext.request.contextPath}/bankLoginMobileCode.do?ticket="+ticket+"&clientId="+clientId+"&SlientId="+SlientId+"&card="+card; } } 这是h5的js调用但是 没有调起来app的方法,求大神给答案!!!

Spring2.5 action中访问Service的问题

最近领导无事儿,让把项目的Spring的版本升级到2.5原来 在只用注解 applicationContext 里面已经几乎没有了Bean的声明, 但是原来的Action 里面使用的是localService.getApp().getBean("BeanName")的方法获取applicationContext 之后找到Service的。 现在Service不声明在applicationContext 里面了,如何获取啊? [b]问题补充:[/b] Service没有声明在applicationConext里面,直接用@Component。所以applicationConext根本没有写这个Bean。

页面数据即使刷新的要怎么处理

app短端页面数据如何及时刷新,刷新的时候会产生什么影响吗?求指教

使用PHP代码存储页面的方法

<div class="post-text" itemprop="text"> <p>I'm currently creating a webpage and I have a problem, which I couldn't find answer for. I'm using Laravel framework and I need to store pages somehow. I would normally use MySQL or SQLite or some other DB engine like that, but some of the pages I write contain PHP code.</p> <p>Specifically, page /app downloads something from somewhere using file_get_contents, does magic with converting encoding and displays the downloaded content. Page / is just plain Html. I thought about using eval() but it seems like an extreme overkill and insecurity to me. Also I would like to leverage the MVC somehow in this by having the logic of /app in controller and the text of the page in some DB. So I need to find some type of model which would allow me to this.</p> <p>I'm using the "function-per-page" approach. i.e.</p> <pre><code>Class MainController extends BaseController { public function getIndex() { // some code } public function getApp() { // some code } public function getDocs() { // some code } } </code></pre> <p>etc...</p> <p>Any ideas on how to deal with it?</p> <p>EDIT:<br> A little bit of background. I'm not a newbie, it is just that I don't know how to deal with this project. I have experience in writing projects like blogs using Laravel. </p> <p>The page I'm creating is "portfolio-type"; mostly static, but 2 pages contains scripts as stated above. Also I already have working version, but I'm rewriting it from scratch. Original version used Slim framework and pages were stored as php files, then included to template based on url.</p> <pre><code>include "pages/$url_part.inc.php"; </code></pre> </div>

Android 继承BridgeWebView 写个自定义的webview。部分手机加载高度为0

public class AdWebView extends com.github.lzyzsd.jsbridge.BridgeWebView { private Context mContext; private MoonthimpModel moonthimpModel; private boolean messageHeight; private String mTitle; private PregressChange pregressChange; public AdWebView(Context context, AttributeSet attrs) { super(context, attrs); this.mContext = context; TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AdWebView); messageHeight = a.getBoolean( R.styleable.AdWebView_messageHeight, false); } public void setPregressChange(PregressChange pregressChange) { this.pregressChange = pregressChange; } public AdWebView(Context context) { super(context); this.mContext = context; } Mobile mobile = new Mobile(); public void initWebView(String url) { WebSettings webSettings = getSettings(); //如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript webSettings.setJavaScriptEnabled(true); //设置自适应屏幕,两者合用 webSettings.setDomStorageEnabled(true); // 解决Android 5.0上Webview默认不允许加载Http与Https混合内容 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //两者都可以 webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); } //设置自适应屏幕,两者合用 webSettings.setUseWideViewPort(true); //将图片调整到适合webview的大小 webSettings.setLoadWithOverviewMode(true);// 缩放至屏幕的大小 webSettings.setAllowFileAccess(true); //设置可以访问文件 webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//支持通过JS打开新窗口 webSettings.setLoadsImagesAutomatically(true);//支持自动加载图片 webSettings.setDefaultTextEncodingName("utf-8");//设置编码格式 addJavascriptInterface(this, "Android_kks"); if (messageHeight) { addJavascriptInterface(mobile, "mobile"); } if (Build.VERSION.SDK_INT >= 19) { getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); } //设置不用系统浏览器打开,直接显示在当前Webview setWebViewClient(new BridgeWebViewClient(this) { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); LogUtils.e("onPageFinished"); if (messageHeight) { mobile.onGetWebContentHeight(); } } @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { // super.onReceivedSslError(view, handler, error); 父类的默认处理方式,内部是handler.cancel(),必须去除 handler.proceed();// 接受所有网站的证书 // handleMessage(Message msg);// 进行其他处理 } }); setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { if (pregressChange != null) { if (newProgress == 100) { //加载完毕进度条消失 pregressChange.onComplete(); } else { //更新进度 pregressChange.onProgress(newProgress); } } super.onProgressChanged(view, newProgress); } @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); if (title != null && pregressChange != null) { // pregressChange.onTitle(title); } } }); loadUrl(url); // loadUrl("https://h5.ruiccm.com/testls/190627/index.html"); // loadUrl("file:///android_asset/demo1.html"); String localVersion = ""; try { PackageInfo packageInfo = KeKeShiApp.getApp() .getPackageManager() .getPackageInfo(KeKeShiApp.getApp().getPackageName(), 0); localVersion = packageInfo.versionName; LogUtils.d("TAG", "本软件的版本号。。" + localVersion); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } AdUserInfoBean src = new AdUserInfoBean(); src.setDevice_uuid(PushAgent.getInstance(mContext).getRegistrationId()); if (AppSharedPrefs.getUserInfo() != null && AppSharedPrefs.getUserInfo().getUserinfo() != null && AppSharedPrefs.getUserInfo().getUserinfo().getTel() != null) { UserBean.UserInfo userinfo = AppSharedPrefs.getUserInfo().getUserinfo(); src.setPhoneNum(userinfo.getTel()); src.setBabybirthday(userinfo.getBabybirthday()); src.setBabyname(userinfo.getBabyname()); src.setBabysex(userinfo.getBabysex()); src.setIsvip((AppSharedPrefs.getUserInfo().getIsvip() ? 1 : 0) + ""); src.setMoonage(userinfo.getMoonage()); src.setRelative(userinfo.getRelative()); src.setUser_uuid(userinfo.getUuid()); } src.setDeviceid(PushAgent.getInstance(mContext).getRegistrationId()); src.setVersion(localVersion); src.setPhone_type("Android"); src.setPhone_version(SystemUtil.getSystemModel() + "," + SystemUtil.getSystemVersion()); //有方法名的都需要注册Handler后使用 registerHandler("userInfo", new BridgeHandler() { @Override public void handler(String data, CallBackFunction function) { Log.i("liuw", "html返回数据为:" + data); function.onCallBack("Native已经接收到数据:" + data + ",请确认!"); } }); //应用启动后初始化数据调用,js处理方法connectWebViewJavascriptBridge(function(bridge) callHandler("userInfo", new Gson().toJson(src), new CallBackFunction() { @Override public void onCallBack(String data) { Log.e("callbace", "successs"); } }); } public String getmTitle() { return mTitle; } private class Mobile { @JavascriptInterface public void onGetWebContentHeight() { post(new Runnable() { @Override public void run() { measure(0, 0); int measuredHeight = getMeasuredHeight(); LogUtils.d("measuredHeight", measuredHeight + ""); SharedPreferences kekeshi = mContext.getSharedPreferences("kekeshi", MODE_PRIVATE); if (measuredHeight != 0) { kekeshi.edit().putInt("measuredHeight", measuredHeight).commit(); } LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) getLayoutParams(); params.height = measuredHeight; if (measuredHeight == 0) { int measuredHeight1 = kekeshi.getInt("measuredHeight", 4000); params.height = measuredHeight1; } params.weight = LinearLayout.LayoutParams.MATCH_PARENT; setLayoutParams(params); } }); } } public void close() { stopLoading(); clearHistory(); removeAllViews(); destroy(); } public void resume() { // resumeTimers(); // onResume(); } public void pause() { // onPause(); // pauseTimers(); } public void load(String url) { initWebView(url); } public interface PregressChange { void onComplete(); void onProgress(int progress); void onTitle(String title); } ``` ```

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

NS网络模拟和协议仿真源代码

NS网络模拟和协议仿真源代码,包含代码说明及协议分析

简单的NS3网络模拟仿真(计算机网络作业)

简单的NS3网络模拟仿真,内附有PPT演示。论文评述。以及简单的安装教程。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

cuda开发cutilDLL

包括cutil32.dll、cutil32D.dll、cutil32.lib、cutil32D.lib,以及附带的glew32.lib/freeglut.lib

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Tensorflow与python3.7适配版本

tensorflow与python3.7匹配的最新库,更新了python3.7以后可以自行下载,或者去国外python的扩展包下载界面自行下载。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

专为程序员设计的数学课

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 购课后添加学习助手(微信号:csdn590),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdn590</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>

实现简单的文件系统

实验内容: 通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

四分之一悬架模型simulink.7z

首先建立了四分之一车辆悬架系统的数学模型,应用MATLAB/Simulink软件建立该系统的仿真模型,并输入路面激励为随机激励,控制不同的悬架刚度和阻尼,选用最优的参数得到车辆悬架的振动加速度变化曲线

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

pokemmo的资源

pokemmo必须的4个rom 分别为绿宝石 火红 心金 黑白 还有汉化补丁 资源不错哦 记得下载

test_head.py

本文件主要是针对使用dlib的imglab标注工具标记的目标检测框和关键点检测而生成的xml文件, 转换为coco数据集格式.

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

前言: 说在前面, 面试题是根据一些朋友去面试提供的,再就是从网上整理了一些。 先更新50道,下一波吧后面的也更出来。 求赞求关注!! 废话也不多说,现在就来看看有哪些面试题 1、面向对象的特点有哪些? 抽象、继承、封装、多态。 2、接口和抽象类有什么联系和区别? 3、重载和重写有什么区别? 4、java有哪些基本数据类型? 5、数组有没有length()方法?String有没有length()方法? 数组没有length()方法,它有length属性。 String有length()方法。 集合求长度用

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

20行代码教你用python给证件照换底色

20行代码教你用python给证件照换底色

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

相关热词 c#中如何设置提交按钮 c#帮助怎么用 c# 读取合并单元格的值 c#带阻程序 c# 替换span内容 c# rpc c#控制台点阵字输出 c#do while循环 c#调用dll多线程 c#找出两个集合不同的
立即提问