每秒刷新一次集合
refreshing a collection every second?
我第一次搞砸了骨干.js Todos。我正在尝试为每个 Todo 添加一个计时器,这很好,但是计时器在我刷新页面之前不会刷新,我希望它每秒刷新一次。
应用程序视图包含以下内容:
window.AppView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'addAll');
Todos.bind('refresh', this.addAll);
Todos.fetch();
},
addAll: function() {
Todos.each(this.addOne);
},
}
所以我想我可以像这样每秒重新加载它:
window.setInterval(function(){
window.Todos.refresh();
}, 1000);
addAll 被调用,我在控制台上没有收到任何错误,但视图没有更新。
我做错了什么?
我的第一个猜测是这一行:
Todos.each(this.addOne);
不正确。你可能想要这样的东西:
Todos.each(_.bind(this.addOne,this));
是的,正如上面@muistooshort问的,你怎么知道计时器没有更新什么?试试这个
window.setInterval(function(){
window.Todos.refresh(); // or .reset() if you've updated backbone.js
console.log('tick');
}, 1000);
我想你看到setInterval
有效。
想出一种方法来手动触发模型的更改事件。这是有效的,因为视图的呈现函数通过this.model.bind('change', this.render, this);
绑定到模型
(在此方案中,Todos
是Todo
模型的集合
Todos.each(function (todo) {
todo.trigger('change');
});
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 只在宽度以下和宽度以上各准备一次
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- Angularjs:空对象,当只有一次点击时
- 在Angular应用程序中每个帖子投票一次
- 每秒刷新一次集合
- 主干分组依据集合仅在一次事件单击后呈现
- 如何迭代地创建记录集合并一次呈现所有记录
- 我需要重组我的主干模型/集合吗?不知道如何一次保存所有内容