主干.js绑定到集合“添加”呈现视图两次
Backbone.js Binding to collection "add" renders view twice
我正在尝试跟踪应用程序中的所有僵尸,并更好地了解事件绑定是如何发生的。我有一个视图,该视图将其集合"add"
事件绑定到其render
函数。
_.bindAll(this, "render");
this.collection.bind("add", this.render);
因此,如果我在我的渲染函数中记录一些东西,我可以在控制台中看到渲染在用户通过 UI 添加新模型后立即发生了两次。控制台输出如下所示:
rendering index.js?body=1 (line 88)
POST http://localhost:3000/tasks jquery.js?body=1 (line 8103)
rendering index.js?body=1 (line 88)
我想知道为什么会这样。我知道模型只被添加到集合中一次,所以这让我认为该事件应该只触发一次。然后我不明白为什么render
被处决了两次。我在这里看过类似的问题,但它是不同的,因为我使用的是add
事件而不是change
。
您是否实例
化了两次视图?可能是两种不同的视图。
我认为您调用了两次渲染。
Yoy 正在做这样的事情:
var yourView = new YourDefinedView();
yourView.render(); // this is your manual call to render
//here you call to the server and when data arrives is the second render
this.collection.fetch();
我不认为渲染是集合收到新项目时绑定的最佳方法。
检查此示例我们如何绑定特定事件以将项目从集合添加到视图:http://danielarandaochoa.com/backboneexamples/blog/2012/02/22/real-world-usage-of-a-backbone-collection/
事实证明,通过事件聚合器render
有一个额外的绑定。它是由另一个开发人员添加的。
相关文章:
- Meteor Router数据函数被调用两次
- 从MySQL数据库中获取输入数据需要两次页面刷新
- Module.start()已激发两次
- Jquery点击事件必须点击两次
- Append元素在运行两次函数后不显示
- 防止双击执行两次jQuery post请求
- 我必须点击两次才能激活任何按钮操作(离子/角度)
- 骨干视图触发事件两次
- 触发的事件被接收两次.如何找到鬼视图
- 主干.js绑定到集合“添加”呈现视图两次
- ng单击需要两次才能更新视图
- 为什么同一个视图在Durandal日志中导航了两次
- 为什么主干视图触发更改事件两次
- 角度 ui 路由器加载视图两次
- 如果使用 AJAX 呈现部分视图,则 Ajax.BeginForm 发布两次
- 由于 ID 更改绑定,主干视图呈现两次
- 递归自定义树视图 angularjs 指令调用 ng 单击两次
- angular ui路由器-必须点击两次才能按预期更新视图(带演示)
- 无法调用$stateProvider两次来更新视图(它只在第一次工作)
- 主干木偶,渲染复合视图两次