好用的框架
1、返回上一页
2、进入某个页面,并传递很多参数
3、关闭所有页面,跳转到指定页面
4、修改小程序的标题
5、获取wxml里面的data-的值
6、采用wx.getStorageSync("")修改保存的对象数据
7、返回上一页并且传递参数给上一页
8、如果picker里面的index=-1如何撑高高度?
9、返回上一页,并调用上一页的方法
10、for循环遍历 textarea或者input标签,事件监听要如何处理
1、返回上一页
wx.showToast({
title: '成功',
icon: 'success',
duration: 1500
});
setTimeout(function () {
wx.navigateBack({
delta: 1//如果返回上2页,这里写2
})
}, 1500)
2、进入某个页面,并传递很多参数
//第一种写法
//发送页面
let data={
index:index,
meetId: this.data.id,
invitationId: this.data.invitationId,
orgId: this.data.orgId
}
wx.navigateTo({
url: '../../invite/user/index?data='+JSON.stringify(data)
})
//接收页面
if (option && option.data) {
this.data.dataObj = JSON.parse(option.data);
this.data.payIndex = this.data.dataObj.index;
this.data.meetId = this.data.dataObj.meetId;
this.data.invitationId = this.data.dataObj.invitationId;
this.data.orgId = this.data.dataObj.orgId;
}
//第二种写法
//发送页面
wx.navigateTo({
url: '../../invite/user/index?ids=meetId&name=name'
})
//接收页面
this.setData({
meetId: options.ids,
name: options.name
})
3、关闭所有页面,跳转到指定页面
wx.reLaunch({
url: 'test?id=1'
})
如果你的验证token是在请求recommonts.js里面,然后你的token错误后需要跳转到登录页面的话需要这样操作 需要多加一个'/'
wx.reLaunch({
url: '/pages/login/index'
})
4、修改小程序的标题
wx.setNavigationBarTitle({
title: "修改培训信息"//页面标题为路由参数
})
5、获取wxml里面的data-的值
enterdetailListener(event){
//注意参数建议不要驼峰命名
let meetId = event.currentTarget.dataset.indexvalue;
wx.navigateTo({
url: "./trainlistdetail?meetId=" + meetId + "&enterstauts=" + this.data.enterstauts,
})
}
6、采用wx.getStorageSync("")修改保存的对象数据
//错误做法
let userObj = wx.getStorageSync("loginInfo");
userObj.name="张三";
如果就这样是无法更改wx.getStorageSync("loginInfo")原本存储的数据
//正确做法
let userObj = wx.getStorageSync("loginInfo");
userObj.name="张三";
wx.setStorageSync("loginInfo", userObj);
7、返回上一页并且传递参数给上一页
//B页面
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2];//获取到上一个页面
prevPage.setData({//给上一个页面设置值
message: e.currentTarget.dataset.msg,
})
//关闭当前页面
wx.navigateBack({
delta: 1,
});
8、如果picker里面的index=-1如何撑高高度?
<view class='ul'>
<view class="li">
<text>主办方</text>
<picker bindchange="changeCountry" value="{{countryIndex}}" range="{{countryList}}" range-key="name">
<view class="tui-picker-detail">{{countryList[countryIndex].name}}</view>
</picker>
<image src="{{imgUrl}}next01.png"></image>
</view>
</view>
.ul{
margin-bottom: 0px;
}
.ul .li {
min-height: 100rpx;
padding: 0 45rpx 0 53rpx;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 28rpx;
border-bottom: 1px solid #DCDCDC;
}
picker{
min-height: 100rpx;
min-width: 75%;
}
.tui-picker-detail{
min-height: 100rpx;
min-width: 75%;
}
9、返回上一页,并调用上一页的方法
A页面
let id = event.currentTarget.dataset.id;
//返回ID 给上一级
let pages = getCurrentPages(); // 当前页面
let beforePage = pages[pages.length - 2]; // 前一个页面
wx.navigateBack({
success: function () {
beforePage.toLoadDataFromId(id); // 执行前一个页面的onLoad方法
}
});
B页面
toLoadDataFromId(fromId){
console.log(fromId);
if (!fromId){
return;
}
},
10、for循环遍历 textarea或者input标签,事件监听要如何处理
比如,我有20条集合,每条集合都有input标签,或者是textarea标签,如果我们使用bindinput属性给每个标签单独命一个名字,这完全是愚蠢的做法。
正确做法如下
<view class="li" wx:for="{{list}}" wx:for-index="index" wx:key="index" wx:for-item="item">
<view class="tixing" >
<view class="view_textarea">
<textarea maxlength="500" name="" placeholder='请输入' data-index="{{index}}" bindinput="Bzhuguan" value="{{item.zhuguan}}" />
</view>
</view>
这里我们要注意一下,首先 bindinput="Bzhuguan" 与 value="{{item.zhuguan}}"
当我们拿到后台给的数据的时候,我们需要对数据进行处理
省略..很多代码
for (let i = 0; i < res.list.length;i++){
let item = res.list[i];
item.zhuguan="";
}
this.setData({
list:res.vos,
})
最重要的来了,我们需要对Bzhuguan进行特殊处理
Bzhuguan:function(event){
let inputZhuanGuan = event.detail.value;//获取输入的值
let index = event.currentTarget.dataset.index;//获取正在操作的index下标
this.data.list[index].zhuguan = inputZhuanGuan; //将值重新赋值
this.setData({
["list[" + index + "]"]: this.data.list[index],//这里是局部刷新操作
})
},
网友评论