无论是百度小程序还是wechat小程序,app.json中规定的tabbar页面都不支持参加。 例如,如下所示:
导航器URL=' . /服务/服务? typeid=6' openType='switchTab '服务项目/导航器
上的navigater跳转具有属性。 openType='switchTab '表示打开tabbar页面服务。 虽然有参数typeid=6,但typeid=6不能用于接收tabbar页。 因此,打开tabbar页时将使用缺省栏。
(1)步骤1 )用bindtap绑定方法触发缓存,保存typeid
tabbar不支持传输参数,但可以获取使用缓存传输的参数。 那么,上述导航器直接跳转方式不行。 方法需要封装。
/view类=' service _ Li '绑定磁带=' show _ service '数据类型=' 11 '数据列表类型='3'服务项目/视图
索引页上的“服务项目”通过bindtap绑定show_service方法,该方法传递后面的data-*中的所有参数。
在index.js中写入show_service方法:
show _ service 3360功能(e ) {
vardata=e .当前目标.数据组;
var title=数据标题; //获取传递的title
var typeid=数据类型; //获取传递的typeid
var listtype=数据.列表类型; //获取传递的列表类型
用setStorageSync方法将typed存储在stypeid中,名称可以自己任意决定
wx.setstoragesync (s类型、类型) )。
wx.switch tab (使用/switch tab方法跳转到相应的页面
URL : ' /页/服务/服务? typeid=' typeid ' title=' title ' listtype=' listtype,//后的参数实际上无效。 可以直接写为‘/pages/service/service’
() )
(、
用户通过单击首页传递的参数typeid现在已保存到缓存中
(2)步骤2 )通过服务取得typeid
将typeid添加到service.js的onload或onshow的方法需要默认的typeid,以便兼容用户直接通过tabbar进行访问。 引用代码:
vars类型=wx.getstoragesync (s类型); //从缓存中获取类型id
var typeid=stypeid? s类型:数据类型; 如果stypeid有读取,否则读取默认的typeid
然后,可以直接从getList (方法中读取api以获取内容列表)
that.getlist (类型标识;
说明:
)1)如果不是通过首页的show_service方法进入service页面,则不会触发缓存更新,因此typeid的值不会发生变化。 单击tabbar进入service页面后,将显示永远存在的页面。 虽然可以将重置方法或情况stypied方法添加到onHide方法中,但不建议这样做
2 )切换service页面的列后,可以在switch_tab方法中添加修改缓存的方法,动态存储在当前列的typeid中
switch _ cat :功能(e
var that=this;
varcategorys=wx.getstoragesync (' category s ' )//调用列缓存
vardata=e .当前目标.数据组;
var typeid=数据类型;
var listtype=数据.列表类型;
var Cur typeid=数据类型;
that.setData({ (
客户类型:客户类型,
listtype: listtype、
page: 1
() )
wx.setNavigationBarTitle({ (
标题:类别s“类型”-“wx.getstoragesync (系统).seotitle
);
that.getlist (类型标识;
(、
但是,在切换列时,是否更改缓存不需要根据需要进行切换
同样,在设置新闻页、事例页等页面时,也可以用同样的方法保存到缓存中,新闻、事例可以根据缓存判断要显示的栏
例如新闻:
存储在wx.setstoragesync('Newsid ',typeid ) newsid中
dedecms小程序插件消除了php和sql的基础,不需要依赖第三方网站的许可,可以在后台一键安装。 小程序由分钟组成,可以拥有真正属于自己的小程序。