微信小程序,全局变量方法的使用
方法一:app.js 内设置全局变量(如屏宽,屏高的设置)
1、app.js文件,定义全局变量
/定义全局变量
globalData:{
userInfo:null,
sysInfo:null,
windowW:null,
windowH:null
}
设置全局变量
//举例获取手机信息
getSys:function() {
var that = this;
// 这里要非常注意,微信的scroll-view必须要设置高度才能监听滚动事件,所以,需要在页面的onLoad事件中给scroll-view的高度赋值
wx.getSystemInfo({
success: function(res) {
//设置变量值
that.globalData.sysInfo=res;
that.globalData.windowW=res.windowWidth;
that.globalData.windowH=res.windowHeight;
}
})
}
最后的app.js文件
//app.js
App({
//全局变量
globalData:{
userInfo:null,
sysInfo:null,
windowW:null,
windowH:null
},
//启动
onLaunch: function () {
// 获取用户信息
this.getUserInfo();
this.getSys();
},
//获取用户信息
getUserInfo:function(cb){
var that = this
wx.login({
success: function () {
wx.getUserInfo({
success: function (res) {
that.globalData.userInfo = res.userInfo
console.log(res.userInfo);
typeof cb == "function" && cb(that.globalData.userInfo)
}
})
}
})
},
//获取手机信息
getSys:function() {
var that = this;
// 这里要非常注意,微信的scroll-view必须要设置高度才能监听滚动事件,所以,需要在页面的onLoad事件中给scroll-view的高度赋值
wx.getSystemInfo({
success: function(res) {
console.log(res.model)
console.log(res.pixelRatio)
console.log(res.windowWidth)
console.log(res.windowHeight)
console.log(res.language)
console.log(res.version)
console.log(res.platform)
//设置变量值
that.globalData.sysInfo=res;
that.globalData.windowW=res.windowWidth;
that.globalData.windowH=res.windowHeight;
}
})
} })
使用app全局变量
//获取app变量
var app = getApp()
Page({
data: {
barItems:[
{id:0,title:"订单",enable:true,icon:'../../images/1.png'},
{id:1,title:"退房",enable:false,icon:'../../images/2.png'},
{id:2,title:"续住",enable:false,icon:'../../images/3.png'}
],
hasLive:true,
},
onLoad:function(){
var that = this;
// 取值全局变量
var sysInfo = app.globalData.sysInfo;
console.log(app.globalData);
that.setData({
windowH:sysInfo.windowHeight-44,
windoww:sysInfo.windowWidth
});
}
})
方法二:全局js设置常用值
全局js文件(data.js)
//对外提供接口 需要暴露在外面才能调用
module.exports = {
getUserKey : getUserKey,//保存登录的用户信息
getOpenPwKey : getOpenPwKey,//保存开门的钥匙
getUrl:getUrl,//host接口
} //接口URL==============
function getUrl(){
return "http://localhost/userapp";
} //本地保存数据的key==============
//保存登录的用户信息
function getUserKey(){
return "xxx";
}
//保存开门的钥匙
function getOpenPwKey() {
return "xxx";
}
全局js使用方法
//获得全局js变量
var Data = require('../../../utils/data.js');
//调用js文件方法
Data.getUrl()+'/user/loginCommon',
Data.getUserKey(),//"userInfo",
data.js文件使用文件js
var app = getApp();
//获得全局js变量
var Data = require('../../../utils/data.js'); Page( {
data: { }, changeInputUser: function(e) {
var value = e.detail.value;
// console.log(value);
this.setData({
userName : value,
})
}, changeInputPw: function(e) {
var value = e.detail.value;
// console.log(value);
this.setData({
password : value,
})
}, loginAction: function (event) {
console.log("dsadsad");
var pw = this.data.password;
var user = this.data.userName;
console.log(user);
console.log(pw);
wx.showLoading({
title: '加载中',
mask: true
});
wx.request({
url: Data.getUrl()+'/user/loginCommon',
method: 'POST',
data: {
phone:user,
password:pw
},
header: {
'content-type': 'application/x-www-form-urlencoded'
// 'Accept': 'application/x-www-form-urlencoded'
},
complete: function(res) {
wx.hideLoading();
},
success: function(res) { console.log(res);
wx.hideLoading();
if(res.data.status==500){
wx.setStorage({
key:Data.getUserKey(),//"userInfo",
data:res.data.data
})
wx.showToast({
title: '请求成功',
icon: 'success',
mask: true,
});
wx.navigateBack({
delta: 1
})
}else {
wx.showToast({
title: res.data.data,
icon: 'error',
mask: true,
});
} }
})
},
})
来源: https://www.jianshu.com/p/e3de2c605506
微信小程序,全局变量方法的使用的更多相关文章
- 微信小程序 全局变量
微信小程序里面有个app.js,我们可以在这个里面设置全局变量, App({ globalData:{ url:"http://xxx.xxx.xx:3000" } }) 在外面就 ...
- 微信小程序ES6方法Promise封装接口
为何要封装接口? 有小程序开发的经验者,相信对微信API Request很熟悉了.对接接口时,有大部分的开发者都是直接调用request方法,去请求后台接口并渲染数据.诚然,直接使用api发起请求对接 ...
- 微信小程序全局变量改变监听
问题来源 最近工作需要写小程序页面,其中有个页面情况为:父页面中包含了一个组件页面,组件页面中又包含了另外一个组件页面.需求为:点击最后一个组件页面中的一个view,需要显示最外层父页面中的一个弹出层 ...
- 微信小程序支付、小程序支付功能、小程序支付方法、微信小程序支付方法
相信大家在做小程序的时候不可避免的会碰到支付功能小程序的支付和pc的是有区别的小程序的支付方法为 wx.requestPayment wx.requestPayment({ timeStamp: '' ...
- 微信小程序setData()方法的详解以及对数组/json操作
此篇文章是本人对setData方法的一些理解,是查阅文档和查找一些其他资料综述的,有所不足希望指正! 直接进入正题! 一.setData()方法: 1.参数接受一个对象,以key,value的形式表示 ...
- 微信小程序-setData()方法
一般setData方法多用于点击后改变页面信息或者刷新后与后台交互获取最新的信息 注意: 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致 ...
- 微信小程序全局变量的设置、使用、修改
1. 全局变量的设置 在miniprogram > app.js 文件中设置,globalData对象就是存储全局变量的. App({ globalData: { hasLogin: false ...
- 微信小程序公共方法创建与调用
在根节点建个 utils 文件夹,在文件夹下建立 util.js 在util.js里面写入 var util = {}; util.getUserId= function(e, t) { ...
- 剖析简易计算器带你入门微信小程序开发
写在前面,但是重点在后面 这是教程,也不是教程. 可以先看Demo的操作动图,看看是个什么玩意儿,GitHub地址(https://github.com/dunizb/wxapp-sCalc) 自从微 ...
- 微信小程序——获取openid
1.在微信小程序后台得到appid.AppSecret 2.在任意小程序界面的[onLoad]中取得code(建议将代码写在index.js中) 3.用取得code换取openid 如后台无法将ope ...
随机推荐
- 设计模式(java)--中介者模式之同事的关联
转自:http://blog.csdn.net/zhengzhb/article/details/7430098 定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使 ...
- list 返回列表null替换
function formatt(rec, val, index) { if (rec === null || rec == "null") { return "0&qu ...
- 【转载】MySQL常用系统表大全
转载地址:http://blog.csdn.net/xlxxcc/article/details/51754524 MySQL5.7 默认的模式有:information_schema, 具有 61个 ...
- activiti监听器
activiti使用的时候,通常需要跟业务紧密的结合在一起,有些业务非常的复杂,通常有如下一些场景: 1.activiti人员动态的分配. 2.当前任务节点完成的时候,指定需要指定下一个节点的处理人( ...
- WordPaster-Drupal 7.34-CKEditor4x
1.1. 集成到drupal 7x-ck4 插件下载:Drupal 7x, 1.1.1. 安装ckeditor4x 下载插件 说明:下载并解压 CKEditor4x插件:https://yunpan. ...
- 迟到的成果——Qt 小学生出题神器设计
Github传送门 Part 1.成果展示及感想 原先一直有个疑惑的问题困扰着对Qt一无所知的我:如何才能使得C++代码在Qt上运行.然而这种困惑在进一步对Qt的了解过程中都得到了慢慢的解决,逐渐有一 ...
- log4j.properties加入内容
log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender. ...
- Middleware / 中间件
中间件格式 module.exports = options => { return (ctx, next) => { // do something } } 中间件格式为一个高阶函数,外 ...
- BlockingCollection 集合随记
BlockingCollection 集合是一个并发安全的集合,而且设计用来实现类似于消息队列的功能,生产者.消费者模式. static void Main(string[] args) { Bloc ...
- javascript AJAX简单原理及什么是ajax
AJAX简单原理供初学者理解 AJAX的原理: Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其 ...