微信小程序,最近发展也是不温不火,但是我们作为开发者, 该解决的问题依然得去解决。在小程序的开发过程中,很多时候,我们需要去跨页面传值,由于小程序没有app的对象属性机制,所以对于小程序的传值取值,我觉得大概有三种,一是通过全局变量取值,二是URL参数传值,三则是通过form表单提交。
对于全局变量传值,其实也很简单,在小程序中,我们可以通过var app = getApp(),获取到全局变量app,然后对app赋值,如app.getId='18996759675',然后这个app.getId='18996759675'相当于已经存在于全局,
var app = getApp()
app.getId='18996759675';
在要使用的地方,通过getApp().getId即可取到之前需要传递的appleid值。
phone:getApp().getId,
URL参数传值的话,从上一个页面中传递某一个参数到编辑页面,以读取数据供填充之用:
<view class=
"container"
data-index=
"{{index}}"
bindtap=
"edit"
><image src=
"../../../images/icon_edit.png"
/><text>编辑</text></view>
edit:
function
(e) {
var
that =
this
;
// 取得下标
var
index = parseInt(e.currentTarget.dataset.index);
// 取出id值
var
objectId =
this
.data.addressObjects[index].get(
'objectId'
);
wx.navigateTo({
url:
'../add/add?objectId='
+objectId
});
},
在读取页面实现onLoad(options)方法,从url路径中获取传递的参数值objectId.
onLoad:
function
(options) {
var
objectId = options.objectId
}
表单提交传值则与前端网页类似,在网页中通过form传递表单值,在小程序中,通过<form bindsubmit="formSubmit">与<button formType="submit">标签配合使用:
<form bindsubmit=
"formSubmit"
>
<input name=
"detail"
placeholder=
"详情地址"
/>
<input name=
"realname"
placeholder=
"收件人姓名"
/>
<input name=
"mobile"
placeholder=
"手机号码"
type=
"number"
/>
<button formType=
"submit"
type=
"primary"
>Submit</button>
</form>
js取值:
formSubmit:
function
(e) {
// detail
var
detail = e.detail.value.detail;
// realname
var
realname = e.detail.value.realname;
// mobile
var
mobile = e.detail.value.mobile;
}
对于表单提交,还可以通过<input bindconfirm="realnameConfirm">实现:
// 实现相应多个**Confirm方式
detailConfirm:
function
(e) {
var
detail = e.detail.value;
}
realnameConfirm:
function
(e) {
var
realname = e.detail.value;
}
mobileConfirm:
function
(e) {
var
mobile = e.detail.value;
}