Backbone.js 关闭没有木偶的ItemView';s区域管理器
我有一个regionBackbone.js 关闭没有木偶的ItemView';s区域管理器,backbone.js,marionette,Backbone.js,Marionette,我有一个regionApp.modalRegion,在这里我显示TopicView,一个CompositeView,它在侧栏中显示讲座链接列表,还有一个content区域,单击链接时播放讲座视频。一切正常,但单击另一个链接时,VideoItemView不会关闭 我的问题是:当视频内容在'.link'上更改时,是否有(木偶的神奇方式之一)先前的视频项目视图可以关闭,而无需在App.modalRegion区域内使用子区域和布局。代码如下: App.modalRegion.show( new Topi
App.modalRegion
,在这里我显示TopicView
,一个CompositeView,它在侧栏中显示讲座链接列表,还有一个content
区域,单击链接时播放讲座视频。一切正常,但单击另一个链接时,VideoItemView
不会关闭
我的问题是:当视频内容在'.link'
上更改时,是否有(木偶的神奇方式之一)先前的视频项目视图可以关闭,而无需在App.modalRegion
区域内使用子区域和布局。代码如下:
App.modalRegion.show( new TopicView({ model: topicModel }) );
TopicView = new Backbone.Marionette.CompositeView.extend( {
template: tpls.TopicTpl,
ui: {
sidebar: "#topic-sidebar",
content: "#topic-content"
},
initialize: function(){
this.listenTo(this.model, "change", this.render);
},
onRender: function(){
this.showContent();
var collection = this.model.get('lectures'),
that = this;
this.ui.sidebar.on('click','.link',function(e) {
e.preventDefault();
var sno = $(this).data("sno");
var vid = new VideoItemView({
model: collection.get(sno),
lec_sno: sno
});
that.ui.content.html(
vid.render().el
);
});
},
showContent : function() {
var list = new LectListCol({
collection: this.model.get('lectures')
});
this.ui.sidebar.html(
list.render().el
);
}
});
我将向您的TopicView
添加一个属性,该属性将引用您的currentVideoItemView
在渲染新的VideoItemView
之前,您需要检查currentVideoItemView
是否是VideoItemView
的实例
然后调用currentVideoItemView
上的close
方法,呈现新的VideoItemView
,然后再次设置currentVideoItemView