Commit f11a84b3 by jscat

nyx weapp: 功能优化

1. 将activity-info like更新的消息统一为事件传输方式(eventBus)
分发给首页(activity)和收藏页(my-collects)
parent f961a466
// pages/activity/activity-info/activity-info.js
// pages/activity/activity-info/activity-info.js
// pages/activity/activity-info/activity-info.js
var config = wx.getStorageSync("config");
var app = getApp();
var event = require('./../../../utils/event.js')
Page({
......@@ -28,7 +29,6 @@ Page({
likeDictUpdate: {}, // 判断当前页面是否存在点赞操作
likeStatus: 0, // 判断like图标的状态
likeUrl: "../../../icon/activity/like.png", // like图标的url
likeDictSub: {},
},
......@@ -147,16 +147,15 @@ Page({
// 如果存在update操作, 则更新
if (likeDictUpdate.hasOwnProperty(activityId) && likeDictUpdate[activityId] != 0 ) {
// step1: 更新数据库
_this.submitLike(userId, activityId, likeDictUpdate[activityId])
var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //当前页面
var prevPage = pages[pages.length - 2]; //上一个页面
//直接调用上一个页面的setData()方法,把数据存到上一个页面中去
prevPage.setData({
likeDictSub: { 'activity_id': activityId, 'num_like': numLike}
})
// step2: 通过eventBus影响订阅页(首页或者收藏页)的数据
var data = {
'activity_id': activityId,
'num_like' : numLike
}
event.emit('LikeChanged', data);
}
......
// pages/activity/activity.js
// pages/activity/activity.js
......@@ -47,9 +47,6 @@ Page({
strSearch : "", //搜索的字串
inputVal : "", //输入字符串,主要用于页面显示
//点赞模块-来自子页面
likeDictSub: {},
//二维码信息
qRCodeMsg: "",
......@@ -180,8 +177,8 @@ Page({
}
// event 订阅, 主要接受my-collect.js里 emit 发送的消息
event.on('DataChanged', this, function(data) {
// event 订阅, 主要接受activity-info.js里 emit 发送的消息
event.on('LikeChanged', this, function(data) {
var activity_id = data['activity_id']
var num_like = data['num_like']
var activities = _this.__data__.activities;
......@@ -220,24 +217,6 @@ Page({
county: defaultCounty
})
var likeDictSub = _this.__data__.likeDictSub;
var activities = _this.__data__.activities;
if(likeDictSub.hasOwnProperty('activity_id'))
{
var activity_id = likeDictSub['activity_id']
for(var i=0; i< activities.length; i++)
{
if(activity_id == activities[i]['activity_id'])
{
activities[i]['num_like'] = likeDictSub['num_like']
}
}
_this.setData({
activities: activities,
likeDictSub: {}, // 处理完之后, 重置为{}
})
}
},
/**
......@@ -252,7 +231,7 @@ Page({
*/
onUnload: function () {
event.remove('DataChanged', this);
event.remove('LikeChanged', this);
},
......
// pages/activity/activity.js
// pages/activity/activity.js
......@@ -29,8 +29,6 @@ Page({
noteTop: 0,
noteHeight: 0,
//点赞模块-来自子页面
likeDictSub: {},
},
......@@ -78,54 +76,44 @@ Page({
//初始载入5个收藏活动
if(_this.__data__.collects.length == 0)
{
//消费collects
_this.getCollects(0, 1, 5);
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
}
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
var _this = this;
// event 订阅, 主要接受activity-info.js里 emit 发送的消息
event.on('LikeChanged', this, function(data) {
var activity_id = data['activity_id']
var collects = _this.__data__.collects;
var likeDictSub = _this.__data__.likeDictSub;
var collects = _this.__data__.collects;
if(likeDictSub.hasOwnProperty('activity_id'))
{
// step1: 在这个页面只能直接取消; 故直接从collects里去除该记录
var activity_id = likeDictSub['activity_id']
var num_like = likeDictSub['num_like']
for(var index=0; index< collects.length; index++)
{
if(activity_id == collects[index]['activity_id'])
{
collects.splice(index, 1)
}
}
// step2: 通过eventBus影响首页(activity)的数据
var data = {
'activity_id': activity_id,
'num_like' : num_like
}
event.emit('DataChanged', data);
}
_this.setData({
collects: collects,
likeDictSub: {}, // 处理完之后, 重置为{}
})
})
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
......@@ -140,6 +128,8 @@ Page({
*/
onUnload: function () {
event.remove('LikeChanged', this);
},
/**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论