在推送通知上更改骨干模型

时间:2012-11-01 21:53:16

标签: javascript backbone.js pusher

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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);
  }
}