理解 History

History 记录与操作是 CdList 与其他列表应用的最大区别,通过合理的配置其列表系统可以完全适用于用户端的各种场景

  • 每个插件可以单独设置是否记录 history 改变

  • 前进, 后退 CdList 系统帮开发者已经处理好 history 的变化,以及各个插件的状态展示,甚至数据的请求也是自动完成

  • 通过特定的 url 进入 CdList 系统,插件会自动设置自己状态,例如:

    页面的 url 为:http://{paht}/?search=北京&page=2

    系统会自动填充 北京 到搜索 input 中,并且设置当前页码为 2

  • 每个插件会相互制约(也可以通过配置消除这种制约关系),并改变 history url,例如

    当前状态为第二页:http://{path}/?search=北京&page=2

    用户改变了搜索条件北京上海

    此时的 url 为:http://{path}/?search=上海&page=0

插件的制约关系

每个插件都会有一个默认的配置项 option.resetList , 代表当自己发生变化时,需要重置的插件列表

对于 Search 插件他的 resetList 为:

resetList: ['pagination', 'filter', 'sort']

表示当搜索内容变化后,pagination, filter, sort 这三个插件都会被重置,同时他们三个对应的 url param 也会被重置

当然开发者也可以改变这种制约关系:

new CdList.addons.Search({
  ...
  resetList: ['pagination']
  ...
})

现在只有 pagination 分页插件会被重置

自定义插件如何改变 history

  • cdList.getHistoryValue
  • cdList.setHistory
  • cdList.removeHistory

用以上三个函数开发者可以自行控制 url,具体使用参见CdList Api

自定义插件如何重置默认插件

自定义重置事件,在开发自定义插件时很重要,通过触发以下事件可以立即重置一个插件:

cdList.trigger('pagination.reset');

results matching ""

    No results matching ""