我有像
这样的骨干视图var EditorView = Backbone.View.extend({
//.....
});
var CellView = Backbone.View.extend({
editor: EditorView
initialize: function (optionValues,multiple) {
//....
this.listenTo(this.editor,'change',this.render);
}
//.....
});
但以上只听一次事件,而不是两次。
我应该如何使用listenTo
函数,以便视图始终监听模型的事件。
答案 0 :(得分:0)
您正在侦听视图构造函数中的事件。 EditorView
是构造函数,而不是视图的实例。
您应该使用全局消息传递来在视图之间进行通信:
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 );
}
});
我认为全球搜索风格更清晰,更灵活。