在此以插件開發中文章列表跳傳文章詳情為例。
1、首先在插件中的文章列表頁面wxml中綁定跳轉事件。
bindtap='url' data-id="{{item.article_id}}"
2、在文章列表頁面js中接收事件,並觸發冒泡事件。
/**
* 跳轉至詳情
*/
url: function (e) {
var eventDetail = {
data: a.pdata(e).id,
}
// 觸發事件的選項 bubbles是否冒泡,composed是否可穿越組件邊界,capturePhase 是否有捕獲階段
var eventOption = {
composed: true
}
this.triggerEvent('click_btn', eventDetail, eventOption);
},
}
3、在插件調試的文章列表頁面里獲取插件層點擊事件
小程序的文章列表.js代碼
1 var p = requirePlugin("myPlugin"); 2 Page({ 3 data: { 4 show: false, 5 ReachBottom: 0, 6 PullDown: 0, 7 }, 8 9 onLoad: function () { 10 var that = this; 11 that.setData({ 12 app_key: 'e31vry7y2j', 13 class_id:42, 14 ident: '',//article_1 15 wz_type: 'find', 16 show:true 17 }) 18 var interval = setInterval(function () { 19 var arr = p.arr['article_' + that.data.app_key], 20 i=0;i++; 21 if (arr || i>10) { 22 clearInterval(interval); 23 wx.setNavigationBarTitle({ 24 title: p.arr['article_' + that.data.app_key] ? p.arr['article_' + that.data.app_key] : '列表' 25 }) 26 } 27 }.bind(this), 1000); 28 }, 29 sub_fun: function (e) { 30 //console.log(e.detail.data); 31 var id = e.detail.data; 32 wx.navigateTo({ 33 url: '/pages/detail/index?id='+id, 34 }) 35 }, 36 /** 37 * 下拉刷新 38 */ 39 onPullDownRefresh: function () { 40 this.setData({ 41 PullDown: this.data.PullDown + 1 42 }) 43 wx.stopPullDownRefresh(); 44 }, 45 /** 46 *上拉加載 47 */ 48 onReachBottom: function () { 49 this.setData({ 50 ReachBottom: this.data.ReachBottom + 1 51 }) 52 }, 53 })
.json代碼
{
"navigationBarTitleText": "列表",
"usingComponents": {
"list": "plugin://myPlugin/article_list"
}
}
.wxml代碼(bind:click_btn綁定插件層點擊事件,在頁面以sub_fun函數接收)
<view wx:if="{{show}}"> <list app_key="{{app_key}}" class_id="{{class_id}}" ident="{{ident}}" wz_type="{{wz_type}}" PullDown="{{PullDown}}" ReachBottom="{{ReachBottom}}" bind:click_btn="sub_fun"/> </view>
4、在頁面完成跳轉,跳到小程序的文章詳情后,再傳參給插件層的文章詳情
小程序的詳情頁主要是把參數傳到插件層(下面代碼中的s_id)
<view wx:if="{{show}}"> <article_detail s_id="{{id}}" app_key="{{app_key}}" ident="{{ident}}" PullDown="{{PullDown}}" bind:suport="suport" bind:click_btn="sub_fun"/> </view>
5、在插件中的文章詳情內js中接收參數(用properties接收,並存在data中以供調用)
properties: {
s_id: {
type: String,
value: '',
observer: function (newVal, oldVal) {
console.log('newVal:'+newVal)
this.setData({ id: newVal })
this.detail()
}
},
},
關於Component構造器的使用方法(https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html)
6、插件中的文章詳情中js即可根據上面的參數來調取文章詳情的接口