方法一: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

微信小程序,全局变量方法的使用的更多相关文章

  1. 微信小程序 全局变量

    微信小程序里面有个app.js,我们可以在这个里面设置全局变量, App({ globalData:{ url:"http://xxx.xxx.xx:3000" } }) 在外面就 ...

  2. 微信小程序ES6方法Promise封装接口

    为何要封装接口? 有小程序开发的经验者,相信对微信API Request很熟悉了.对接接口时,有大部分的开发者都是直接调用request方法,去请求后台接口并渲染数据.诚然,直接使用api发起请求对接 ...

  3. 微信小程序全局变量改变监听

    问题来源 最近工作需要写小程序页面,其中有个页面情况为:父页面中包含了一个组件页面,组件页面中又包含了另外一个组件页面.需求为:点击最后一个组件页面中的一个view,需要显示最外层父页面中的一个弹出层 ...

  4. 微信小程序支付、小程序支付功能、小程序支付方法、微信小程序支付方法

    相信大家在做小程序的时候不可避免的会碰到支付功能小程序的支付和pc的是有区别的小程序的支付方法为 wx.requestPayment wx.requestPayment({ timeStamp: '' ...

  5. 微信小程序setData()方法的详解以及对数组/json操作

    此篇文章是本人对setData方法的一些理解,是查阅文档和查找一些其他资料综述的,有所不足希望指正! 直接进入正题! 一.setData()方法: 1.参数接受一个对象,以key,value的形式表示 ...

  6. 微信小程序-setData()方法

    一般setData方法多用于点击后改变页面信息或者刷新后与后台交互获取最新的信息 注意: 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致 ...

  7. 微信小程序全局变量的设置、使用、修改

    1. 全局变量的设置 在miniprogram > app.js 文件中设置,globalData对象就是存储全局变量的. App({ globalData: { hasLogin: false ...

  8. 微信小程序公共方法创建与调用

        在根节点建个 utils  文件夹,在文件夹下建立 util.js   在util.js里面写入 var util = {}; util.getUserId= function(e, t) { ...

  9. 剖析简易计算器带你入门微信小程序开发

    写在前面,但是重点在后面 这是教程,也不是教程. 可以先看Demo的操作动图,看看是个什么玩意儿,GitHub地址(https://github.com/dunizb/wxapp-sCalc) 自从微 ...

  10. 微信小程序——获取openid

    1.在微信小程序后台得到appid.AppSecret 2.在任意小程序界面的[onLoad]中取得code(建议将代码写在index.js中) 3.用取得code换取openid 如后台无法将ope ...

随机推荐

  1. GC Roots的理解以及如何判断一个对象为“垃圾”

    http://blog.csdn.net/Great_Smile/article/details/49935307 这篇博客中讲解了哪些可以作为GC Roots以及如何判断一个对象为垃圾

  2. C# 静态类的使用

    静态类与非静态类基本相同,但存在一个区别:静态类不能实例化.也就是说,不能使用 new 关键字创建静态类类型的变量.因为没有实例变量,所以要使用类名本身访问静态类的成员. static class C ...

  3. 团体程序设计天梯赛L1-023 输出GPLT 2017-03-22 17:56 39人阅读 评论(0) 收藏

    L1-023. 输出GPLT 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个长度不超过10000的.仅由英文字母构成的 ...

  4. 第几天——第九届蓝桥杯C语言B组(省赛)第一题

    原创 标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 这题是送分题,只需要注意一下2000年 ...

  5. linux help

    linux提供了极为详细的帮助工具及文档,一定要养成查找帮助文档的习惯,可以大大减少需要记住的东西,并提高效率. 几乎所有命令都可以使用-h或--help参数获取使用方法,参数信息等. man man ...

  6. Android-ListView-(BaseAdapter使用)

    在Android中就提供了专门列表显示条目的控件,ListView控件,ListView控件不是一次性加载全部数据,他是只加载用户在屏幕看得到的数据,当用户滑动的过程中在去加载新的数据,同时会自动销毁 ...

  7. 深入理解最强桌面地图控件GMAP.NET ---[更新]百度地图

    之前写了篇博文,深入理解最强桌面地图控件GMAP.NET --- 百度地图 但是很多回复说百度地图更新了,不能显示百度的离线地图.之前承诺说是国庆节更新,最近才更新.代码已经提交到: https:// ...

  8. VSM Import Cluster功能验证一(准备篇)

    一.概述 本文档记录了VSM Import Cluster功能验证过程及过程中遇到的问题. 二.准备 2.1.网络规划 1) Management Network:VSM控制节点对其他节点的管理网络, ...

  9. DCL实现多线程安全的高性能懒汉模式

    DCL实现多线程安全的高性能懒汉模式 1.单线程安全的懒汉模式实现 源码: private static LazyLoad instance = null; public static LazyLoa ...

  10. day04.1-三元表达式与列表解析

    1. 三元表达式 name = input("请输入:") res = "英雄" if name=="令狐冲" else "伪君子 ...