[英]How to call render method of a cell view from the editor view upon change event?
我有这样的骨干观点
var EditorView = Backbone.View.extend({
//.....
});
var CellView = Backbone.View.extend({
editor: EditorView
initialize: function (optionValues,multiple) {
//....
this.listenTo(this.editor,'change',this.render);
}
//.....
});
但是上面只听事件一次,不听两次。
我应该如何使用listenTo
函数,以便视图始终侦听模型的事件。
您正在从视图的构造函数监听事件。 EditorView
是构造函数,而不是视图的实例。
您应该使用全局Messenger在视图之间进行通信:
var EditorView = Backbone.View.extend({
//.....
change : function() {
Backbone.trigger('editor:change');
}
});
var CellView = Backbone.View.extend({
initialize: function (optionValues,multiple) {
this.listenTo(Backbone,'editor:change',this.render);
}
});
或在创建单元格视图时传递编辑器的实例:
var CellView = Backbon.View.extend({
initialize: function( options ) {
this.editor = options.editor;
this.listenTo( this.editor, 'change', this.render );
}
});
我认为全局Messenger风格更加清晰,并且具有更大的灵活性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.