UNPKG

nyx_server

Version:

Node内容发布

82 lines (68 loc) 2.67 kB
(function ($, lib, conf) { 'use strict'; var fragmentGroup = { fragments: {}, focusFragment: null, add: function (fragment) { fragmentGroup.fragments[fragment.uid] = fragment; }, createAll: function () { var comments = lib.getComments('chip:start'); for (var i = 0, iLen = comments.length; i < iLen; i++) { fragmentGroup.create(comments[i]); } }, create: function (commentElm) { var uid = commentElm.data.split(';')[1].split('=')[1]; // 创建前需要先判断该碎片是否存在,因为每次刷重建通栏时, // 都是基于对整个页面上的通栏注释节点进行重建的。 if (typeof fragmentGroup.fragments[uid] === 'undefined') { fragmentGroup.add(new topic.module.Fragment(commentElm)); } }, // 对所有通栏的蒙层进行重置,主要是对位置和是否显示进行重新计算。 layoutResetAll: function () { if (topic.state.get('pageModel') === 'bannerEdit') { return; } for (var key in fragmentGroup.fragments) { fragmentGroup.fragments[key].layoutReset(); fragmentGroup.fragments[key].show(); } }, // 隐藏所有碎片蒙层。 layoutHideAll: function () { for (var key in fragmentGroup.fragments) { fragmentGroup.fragments[key].hide(); } }, // 这里删除一个碎片,需要将所有碎片进行一次重置 // isReset的作用是如果在批量删除碎片的时候,可以先不进行重置 // 在全部删除完,再进行一次重置,提高性能。 remove: function (fragmentId, isReset) { if (typeof isReset === 'undefined') { isReset = true; } if (typeof fragmentGroup.fragments[fragmentId] !== 'undefined') { fragmentGroup.fragments[fragmentId].destory(); delete fragmentGroup.fragments[fragmentId]; if (isReset) { fragmentGroup.layoutResetAll(); } } }, // 移除一个通栏内的所有碎片对象 // 使用方法是,遍历fragments对象,将bannerUid跟传入参数相同的碎片进行清除。 removeByBanner: function (bannerUid) { var fragment; for (var key in fragmentGroup.fragments) { fragment = fragmentGroup.fragments[key]; if (fragment.bannerUid === bannerUid) { fragmentGroup.remove(fragment.uid, false); } } fragmentGroup.layoutResetAll(); } }; lib.ns('topic').fragmentGroup = fragmentGroup; }(topicJquery, topic.utils, topic.conf));