我最近构建了一个requirejs / backbonejs模块,可以在我的页面上构建一个表。该集合获取数据并以JSON格式返回,我正在解析和渲染。它到目前为止工作正常,并且表格在页面上呈现精美。
我用来获取数据的API要求我在一个时间范围内传递。因此,对于表格的第一次抽奖,我传递一个MS值来获取最近30天的数据。
我还在页面顶部有一个过滤器部分,允许我选择要获取的数据天数,包括1周或1个月。
如何让这个过滤器重新加载集合而不重绘整个页面?或者我只是实施骨干/需要错误?
答案 0 :(得分:1)
邦。你最后的评论。
您甚至不需要使用此设置设置事件触发器。当您获取集合时,Backbone将自动为您触发重置事件。
假设您的父视图是整个页面。父视图中的某个位置是触发fetch()
事件的下拉过滤器。您获取适当的数据(1周或1个月)并重置您的收藏。
您的子视图(子视图)有一个正在侦听您的收藏重置的事件监听器:
// Inside child view
// (the view that houses all the individual model views of the collection)
this.collection.on('reset', this.render, this);
当它听到你重置你的收藏时,它就会重新呈现。
注意:一旦您开始创建子视图的子视图和子视图,请不要忘记在删除父视图时正确清理这些子视图(这意味着确保它们已从DOM中删除并与任何事件分离他们必须听的。)否则你会得到令人讨厌的僵尸视图,这会占用资源并造成奇怪的混乱。这是一个受欢迎的反复出现的问题。 ; - )