Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 关闭没有木偶的ItemView';s区域管理器_Backbone.js_Marionette - Fatal编程技术网

Backbone.js 关闭没有木偶的ItemView';s区域管理器

Backbone.js 关闭没有木偶的ItemView';s区域管理器,backbone.js,marionette,Backbone.js,Marionette,我有一个regionApp.modalRegion,在这里我显示TopicView,一个CompositeView,它在侧栏中显示讲座链接列表,还有一个content区域,单击链接时播放讲座视频。一切正常,但单击另一个链接时,VideoItemView不会关闭 我的问题是:当视频内容在'.link'上更改时,是否有(木偶的神奇方式之一)先前的视频项目视图可以关闭,而无需在App.modalRegion区域内使用子区域和布局。代码如下: App.modalRegion.show( new Topi

我有一个region
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