1

我有一个木偶 ItemView,它创建了一些子视图。这些子视图在其元素上使用 jQuery UI 的可拖动功能。我在子视图的 onRender 中实例化可拖动对象。

当我在父视图上调用 close 时,在它的 onClose 函数中,我在子视图上调用 close。如果子视图在 onClose 中,我调用 .draggable("destroy")。我的问题是,我收到以下错误: 在初始化之前无法调用可拖动的方法;试图调用方法“销毁”

我正在使用骨干保姆来管理我孩子的观点。

有任何想法吗?我应该以不同的方式管理关闭子视图吗?

4

1 回答 1

0

onClose 方法在视图的 Close 方法之后被触发。视图的 close 方法根据文档执行以下操作。https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.view.md#view-close

  • 解绑所有listenTo事件
  • 取消绑定所有自定义视图事件
  • 解绑所有 DOM 事件
  • 从 DOM 中移除 this.el
  • 在视图上调用 onBeforeClose 事件(如果提供了)
  • 在视图上调用 onClose 事件(如果提供了一个)

因此,如果此方法的清理工作不足以满足您的场景并且您仍需要调用 destroy,请尝试在 onBeforeClose 方法中执行此操作,这将在 close 方法之前调用。

于 2013-06-16T23:53:35.010 回答