Javascript 如何在主干js中从您的模型中侦听其他模型事件?
我的脊梁骨有问题。我有两种型号:A型和B型 我需要监听一个模型中的事件,例如A,然后在事件发生后在模型B的视图及其视图中进行更改 有没有人举一个简单的例子来说明如何在主干网中实现这些功能Javascript 如何在主干js中从您的模型中侦听其他模型事件?,javascript,backbone.js,Javascript,Backbone.js,我的脊梁骨有问题。我有两种型号:A型和B型 我需要监听一个模型中的事件,例如A,然后在事件发生后在模型B的视图及其视图中进行更改 有没有人举一个简单的例子来说明如何在主干网中实现这些功能 var Model_A_View= Backbone.View.extend({ events: { // some events; "click" : "ok", }, initialize: function () { this.Model_A = new Mod
var Model_A_View= Backbone.View.extend({
events: {
// some events;
"click" : "ok",
},
initialize: function () {
this.Model_A = new Model_A({ // });
}
您的代码很难阅读,没有代码样式,还有一些synax错误 但是,您最好在视图的initialize函数之外创建模型,并在新建视图时将模型作为para传递: 作为您可以使用的变体。几个简单的步骤,如何做到这一点 1.指定事件全局对象:
window._vent = _.extend({}, Backbone.Events);
2.在视图/模型/集合中指定事件触发器。例如,对于您的视图:
var Model_A_View = Backbone.View.extend({
events: {
// some events;
"click" : "ok",
},
initialize: function() {
this.Model_A = new Model_A({});
},
ok: function() {
vent.trigger('model_A:update', this.model); //you can also send your model
}
});
3.在模型中指定事件侦听:
您可以有一个全局事件总线。提供代码,您到目前为止尝试了什么?关于此解决方案被否决的原因有何解释?
window._vent = _.extend({}, Backbone.Events);
var Model_A_View = Backbone.View.extend({
events: {
// some events;
"click" : "ok",
},
initialize: function() {
this.Model_A = new Model_A({});
},
ok: function() {
vent.trigger('model_A:update', this.model); //you can also send your model
}
});
var Model_B_View = Backbone.View.extend({
initialize: function() {
this.Model_B = new Model_B({});
vent.on('model_A:update', this.updateModel, this);
},
updateModel: function() {
//this function will be call after `model_A:update` event triggered
//do something with Model_B
}
});