0

我正在尝试将简单的 Backbone 应用程序和 Pusher 放在一起。我拥有的是项目模型的骨干集合。应用程序可以从 Pusher 接收其中一些模型已更新的事件。

我想将我的代码与 Pusher 分离,以便我创建了应用程序范围的通知器,它扩展了主干事件、接收推送器事件并发布了主干事件。

现在我的问题是如何更新集合中的模型?我正在考虑在创建时向 Collection 提供 Notifier 并绑定到 Notifier 的事件函数,该函数将检查(具有事件数据)哪个模型被更改,在自己的集合中搜索这样的模型,相应地更新它并发布“更改”事件,以便视图可以做出相应的反应。

这是一个好方法吗?在集合中搜索正确的模型可能效率不高,所以我也在考虑为每个模型实例提供通知器,让所有模型在更改时得到通知,并实现一些只有一个目标模型实例应该做出反应的条件。

4

2 回答 2

1

有几个库可以帮助您将 Pusher 与 Backbone 一起使用:

于 2012-11-02T07:22:13.557 回答
0

在客户端:

var channel = pusher.subscribe('xxxx');        

channel.bind('xxxx', function(data) { //xxxx could be a json data object 
  var obj = $.parseJSON(data); 
  var mdl.coll.get(obj.id);

  if (mdl) { 
    mdl.set(obj, {silent: true}); //         console.dir(mdl.changed);
  }
}
于 2012-11-01T23:35:01.940 回答