Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将模型的主干1.0观察员重新绑定到其他模型_Javascript_Backbone.js_Backbone Events - Fatal编程技术网

Javascript 将模型的主干1.0观察员重新绑定到其他模型

Javascript 将模型的主干1.0观察员重新绑定到其他模型,javascript,backbone.js,backbone-events,Javascript,Backbone.js,Backbone Events,是否可以将主干网1.0模型的所有观察者(或“侦听器”)重新绑定到相同类型的新模型 我有一个sessionManager对象: var SessionManager=Backbone.Model.extend({ //函数将新的顺序设置为“this”的属性。 //稍后,另一个函数在同一属性中设置不同(新)的Order对象,如下所示: someFunction:function(customerId){ //订单也是一种主干模式 set('order',新订单({customerId:10001})

是否可以将主干网1.0模型的所有观察者(或“侦听器”)重新绑定到相同类型的新模型

我有一个sessionManager对象:

var SessionManager=Backbone.Model.extend({
//函数将新的顺序设置为“this”的属性。
//稍后,另一个函数在同一属性中设置不同(新)的Order对象,如下所示:
someFunction:function(customerId){
//订单也是一种主干模式
set('order',新订单({customerId:10001}));
}
});
var sessionManager=newsessionmanager();
因此,在应用程序中的某一点上,
sessionManager
order
属性是
设置为
新顺序({customerId:10002})

此时我希望发生的是,以前的
命令
通知所有它的观察者停止听它,而是听取代它的
新命令({customerId:10002})

我已经查看了
order
对象中的
\u listeners
属性,并认为也许我可以通过这种方式循环调用所有侦听器上的
stopListening()


在这件事上我找不到任何明确的指南。基本上,新的
listenTo
stopListening
函数把我搞糊涂了。

只更新订单怎么样?初始化它一次,更新时只需将其重置为初始状态并更改
customerId
。在这种情况下,所有事件都将被保存。如果您有“当前订单”的概念,那么您可以通过
SessionManager
代理所有“当前订单”事件,方法是将
SessionManager
绑定到订单上的
“所有”
,然后其他所有人都将绑定到会话管理器上的事件。当然,有意义的方法取决于应用程序的具体情况。