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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。