我有一个区域App.modalRegion
,其中我显示TopicView
,一个CompositeView,显示sidebar
和content
区域的讲座列表,播放讲座视频单击链接时。一切正常,但是当点击另一个链接时VideoItemView
没有关闭。
我的问题是:当'.link'
点击时更改视频内容时,是否存在(其中一个木偶的神奇方式)之前VideoItemView
可以关闭而不使用子区域和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
);
}
});
答案 0 :(得分:0)
我会在TopicView
添加一个可以引用您的currentVideoItemView
的属性。
在呈现新的VideoItemView
之前,您会检查currentVideoItemView
是VideoItemView
的实例。
然后,您可以调用close
上的currentVideoItemView
方法,渲染新的VideoItemView
,然后再次设置currentVideoItemView
。