我是 Backbone 的新手,我想知道这方面的最佳实践 - 我想要一种与 subview 的父 View 进行通信的简单方法,即调用父 View 的方法。
下面使用“桌面”和“文档” View 的基本示例:
class DesktopView extends Backbone.View{
constructor(options?) {
super(options);
this.el = $('#desktop');
this.createDocument();
}
createDocument() {
dv = new DocumentView();
$(this.el).append(dv.render());
}
}
class DocumentView extends Backbone.View{
constructor(options?) {
super(options);
this.tagName = 'div';
this.className = 'document';
this.events = {
"click": "clickHander"
};
};
render() {
return this.el;
}
clickHandler() {
//COMMUNICATE WITH THE DESKTOP VIEW
}
}
我应该为文档 View 创建一个模型并监听它的变化吗?
最佳答案
您可以使用 Backbone 事件来触发函数调用。这样做的好处是“子” View 不必知道它的父 View 。
var parent = Backbone.View.extend({
initialize : function () {
this.listenTo( Backbone, 'child-click-event', function ( dataFromChild ) {
this.doSomething( dataFromChild );
}, this );
}
});
var child = Backbone.View.extend({
//...
clickHandler : function () {
var data; // do something and get data
// Parent listens to this event.
Backbone.trigger('child-click-event', data );
}
});
关于javascript - 主干 - 从 subview 调用/引用父 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070001/