app/Resources/static-src/common/es-infinite-cached-scroll.js
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
import { isEmpty } from 'common/utils';
import 'waypoints/lib/jquery.waypoints.min';
import Emitter from 'common/es-event-emitter';
import { debounce } from 'app/common/widget/debounce';
/**
* 伪分页,从缓存中读取数据,数据结构格式见 构造方法
* 例子见 app/Resources/static-src/app/js/courseset/show/index.js
* 及 app/Resources/views/course/task-list/default-task-list.html.twig
*
<!--
必须通过模板来生成节点, 模板由dataTemplateNode自定义(见构造函数)
1. 变量以 {chapterName} 的方式生成,chapterName是变量,会先从 context 中找chapterName方法(参数为当前行data和context),
如果没有此方法,则去data中找到相应属性
2. display-if 如果结果为0或false, 则删除该节点
3. hide-if 如果结果为1或true, 则删除该节点
4. tmp节点, 一般用于处理 display-if 和 hide-if,会移除, 通过子节点unwrap的方式移除,如果没有子节点,无法移除
如果tmp节点上有 js-ignore-remove, 则不会被删除
-->
<div class="js-infinite-item-template hidden">
<li class="task-item bg-gray-lighter js-task-chapter infinite-item"
display-if="{isChapter}">
<i class="es-icon es-icon-menu left-menu"></i>
<a href="javascript:" class="title gray-dark">{chapterName}</a>
<i class="right-menu es-icon es-icon-remove js-remove-icon"></i>
</li>
<tmp hide-if="{isChapter}">
<tmp display-if="{isUnit}">
// 节信息
</tmp>
</tmp>
</div>
<!--
显示节点的容器, 必须要有class "infinite-container",
根据所给的值,会将模板内的节点生成并显示到容器内(不包含模板节点本身)
-->
<ul class="task-list task-list-md task-list-hover infinite-container">
</ul>
<!-- 当页面上看到此节点时,会自动显示下一页 -->
<div class="js-down-loading-more" style="min-height: 1px"></div>
*/
export default class ESInfiniteCachedScroll extends Emitter {
/**
* @param options
* {
* 'data': eval($('.infiniteScrollDataJson').val()),
//json数组
[
{
'itemType': 'chapter',
},
{
'itemType': 'unit',
}
]
* 'context': jsonData,
//json, 用于将data中的值做转换, 或设置一些公共变量
// 支持普通json和方法
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。