微信小程序 that 第1篇
新版本的微信小程序最新版本号是 ,这次更新增加了 四个交互API:
这四个组件。所有微信提供的API接口都是以 wx.
开头,并且一般情况下都接收一个对象作为参数。接收的对象中可以指定success
,fail
, complete
这三个函数来接收接口调用结果。
回调函数
一般情况下。我们调用某个接口后都会在success
回调函数里面处理一下成功之后的业务逻辑,比如发送个提示什么的。这里我举例使用 接口,截图看程序
视图页面
视图页面
文件页面
Page({ data:{ itemLists: ['中国', '美国', '日本', '英国'] }, showactionsheet: function () { ({ itemList: , itemColor: _red_, success: function (res) { if (!) { (res); } } }) } })
调试窗口
function (res) { if (!) { ([]); } }
这是时候我们发现报错了
报错itemLists 为undefiend
原因是说itemLists 未定义。我们尝试把对象也打印出来。同样发现是
undefined
.
重要的 var that=this
微信小程序 that 第2篇
最近在写微信小程序的前端页面,其中涉及到了数据的交互。在数据更新完毕后,我想在控制台把对象打印出来查看数据状态,于是我写出了如下代码:结果控制台直接输出undefined对象的定义如下这时我便来了兴致:this指针到底指向什么?如何才能获得academies对象呢?为什么在基于Vue的web前端开发时,可以直接在Vue实例的普通函数中使用this指向数据?于是我开始了探索。
微信小程序 that 第3篇
1
2 Page({
3
4 data: {
5 toastHidden: true,
6 },
7
8 loadData:
function
() {
9
var
that = this
//这里声明了that;将this存在that里面
10 ({
11 url:
''
,
12 data: {a:
'a'
, b:
'b'
},
13 header: {
14
'content-type'
:
'application/json'
15 },
16 success(res) {
17 ({ toastHidden: false })
//这里使用了that,这样就可以获取Page({})对象
18 },
19 })
20 }
21
22 })
在代码中第9行声明了var that =this;第17行使用了that。
如果不声明var that =this,且that改成this,代码如下!
示例代码2
1
2 Page({
3
4 data: {
5 toastHidden: true,
6 },
7
8 loadData:
function
() {
9 ({
10 url:
''
,
11 data: {a:
'a'
, b:
'b'
},
12 header: {
13
'content-type'
:
'application/json'
14 },
15 success(res) {
16 ({ toastHidden: false })
17 },
18 })
19 }
20
21 })
此时运行代码就会报以下错误!
从报错中得知setData这个属性读不到,为何读不到?这跟this关键字的作用域有关!