Page()
函数。在js文件里面写的处理页面的一些函数和方法
html里面写<image
bindtap
="bindViewTap"></image> 点击这个图片触发bindtap事件。 然后在js里面写
//事件处理函数
bindViewTap:
function() {
wx.navigateTo({ //页面跳转到这个url。如果跳转的是tabBar选项卡的某个页面要写wx.switchTab({url:""})
url:
'../logs/logs'
})
}
bindViewTap:
function() { //这个块和data是平级的
this.setData({ msg:
"Hello World" }) //再页面中新增加一个data的数据。你可以用{{}}写在页面标签中
},
转发函数
Page({
data: {
text: "This is page data."
},
onShareAppMessage: function () { //转发时触动的函数。写这个函数右上角才有转发按钮
return {
title: '自定义转发标题',
path: '/page/user?id=123' //转发跳转的页面路径
}
},
const util = require('../../utils/util.js')
在一个js页面引入另一个js
为什么要把this转为that在使用
在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报undefiend。原因是,在javascript中,this代表着当前对象,会随着程序的执行过程中的上下文改变,在wx.request({});方法的回调函数中,对象已经发生改变,所以已经不是wx.request({});方法对象了,data属性也不存在了。
所以要
var
that=
this
;
//把this对象复制到临时变量that。然后下面就用that来调用
想要换行br无效
小程序没有换行标签<br/>如果你想换行的话,需要使用\n.但是他必须写在text标签里面才有效
<text>\n多选框</text>
修改data中的数据,页面数据不改变是怎么回事?
Page ({
data: { isShow: false },
changeStatus(){
console.log(this.
data.isShow);
输出的是false
this.
data.isShow = true;
从新赋值
console.log(this.
data.isShow);
输出的还是true。
但是页面中{{isShow}}的值还是false。
}
})
从上边代码和效果图我们可以看出:
1、习惯的赋值方式“=”在逻辑层是起到了作用改变了isShow;
2、视图层的并没有发生变化。
结论就是常规的“=”赋值方式,在微信小程序中只能改变data中的数据,而不能改变视图层的数据,那么微信小程序怎么解决这个问题的,setData()方法。
如果data绑定的数据改变了,需要从新绑定到该变量
setData:function(e){
var that=this;
that.setData({
message:e.detail.value
})
}
如果想获取data的数据。that.data.message