我正在尝试将简单的Backbone应用程序和Pusher放在一起。 我所拥有的是项目模型的骨干集合。应用程序可以接收来自Pusher的事件,其中一些模型已更新。
我想将我的代码与Pusher分离,以便我创建了应用程序范围的Notifier,它扩展了骨干事件,接收推送事件并发布Backbone事件。
现在我的问题是如何在集合中更新我的模型? 我正在考虑在创建时向集合提供Notifier并绑定到Notifier的事件函数,该函数将检查(具有事件数据)哪个模型已更改,在自己的集合中搜索此类模型,相应地更新它并发布“change”事件以便视图可以做出相应的反应。
这是一个好方法吗?在集合中搜索正确的模型可能效率不高,所以我也在考虑为每个模型实例提供Notifier,并让所有模型在变更时得到通知,并实现只有一个目标模型实例应该做出反应的条件。
答案 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);
}
}