gpt4 book ai didi

jquery - 如何使用 Backone 销毁 View 及其内部的任何模型

转载 作者:行者123 更新时间:2023-12-01 06:56:53 27 4
gpt4 key购买 nike

我有一个主干 View ,里面有一个模型。当我在 View 上调用remove()时,设置到已删除 View 内模型的事件保持事件状态。我尝试了 model.destroy() 但据我所知,这只适用于服务器端,不适用于 View 内的模型。或者也许我错了。

此外,当我在 View 上调用删除时,我认为它只是获取 View el 属性并对其调用删除。如果是这样,您可以监听一个回调来销毁 View 内模型上的绑定(bind)事件。

最佳答案

您可以通过调用model.unbind()来取消绑定(bind)模型上的所有事件。因此,您可以像这样重写 View 上的 remove 方法:

remove: function() {
this.model.unbind();
Backbone.View.prototype.remove.call(this);
}

实际上破坏模型有点棘手。如果模型位于集合中,您可以在调用 .unbind() 之前尝试调用 model.trigger('destroy') - 这将从任何集合中删除该模型包含它。然后,您可以将 view.model 设置为 null,从 View 中删除引用,并希望释放模型以进行垃圾回收。您还可以调用 model.clear() 来清除其字段,但这可能不是必需的。因此,完整的 remove 函数可能如下所示:

remove: function() {
this.model.trigger('destroy');
this.model.unbind();
this.model = null;
Backbone.View.prototype.remove.call(this);
}

关于jquery - 如何使用 Backone 销毁 View 及其内部的任何模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7908028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com