Javascript 将主干模型和集合绑定到源图
我希望将主干网与节点上的持久内存数据存储结合使用。我希望能够使用主干网访问此存储并反映更改 数据可能如下所示:Javascript 将主干模型和集合绑定到源图,javascript,backbone.js,Javascript,Backbone.js,我希望将主干网与节点上的持久内存数据存储结合使用。我希望能够使用主干网访问此存储并反映更改 数据可能如下所示: var data = [ { baz: 'baz' } ] var dataCollection = new Backbone.Collection(data); dataCollection.first().set('baz', 'new value'); data[0].baz //==> 'new value' 然后我想做的是这样的事情
var data =
[
{
baz: 'baz'
}
]
var dataCollection = new Backbone.Collection(data);
dataCollection.first().set('baz', 'new value');
data[0].baz //==> 'new value'
然后我想做的是这样的事情:
var data =
[
{
baz: 'baz'
}
]
var dataCollection = new Backbone.Collection(data);
dataCollection.first().set('baz', 'new value');
data[0].baz //==> 'new value'
现在更有趣的是,如果我这样做:
dataCollection.add({ baz: 'a whole new baz' });
data //==>
[
{
baz: 'baz'
},
{
baz: 'a whole new baz'
}
]
基本上,我希望用本机对象/数组引导主干模型/集合,并在对应对象上反映对主干对象的任何更改
我不确定主干网是否会在节点上运行。我在这方面没有经验 至于使用数据存储实际反映主干模型/集合上的更改,您只需侦听模型/集合更改事件(前提是它将运行) 这听起来像是一个简单的事件系统将给你所有的杠杆,你需要这样做没有骨干 如果希望model.save将更改持久化到内存中的数据存储,则可以覆盖
Backbone.sync
以不发送XHR,而只更改数据存储。这里最妙的是,如果您为所有不同的http操作实现它,那么您也应该能够获取
现在,您所需要的只是模型上的一个事件,让它自己观察change
,然后调用这个。保存:
this.listenTo(this,'change',this.save)代码>
让我知道您是否在追求这个目标。主干不会更改原始数据变量的值,如果您是这样要求的话。除非手动更改数据的值:data=myModel.toJSON()代码>。您在服务器端运行主干网吗?@HighCat是的,我在节点上运行。@idbehold我知道它没有。关键是我希望这样做,所以我正在寻找推荐的方法来实现这一点,或者如果有什么原因没有人这样做的话。主干网肯定是在节点上运行的。另外,也许我的问题还不清楚,重点是只使用本机主干对象(或在创建主干库时修改基本原型),而不是通过事件手动硬连接,这自然很容易做到。