gpt4 book ai didi

javascript - 在backbonejs中删除模型并更新 View

转载 作者:行者123 更新时间:2023-11-28 01:56:13 25 4
gpt4 key购买 nike

我有以下主干 View :

    Chatbox.Views.Message = Backbone.View.extend({
template: _.template($("#tmplt-Message").html()),

events: {
"click a.remove_link" : "clear"
},
initialize: function () {
_.bindAll(this, 'render', 'remove');
this.model.on('clear', this.clear);
this.listenTo(this.model, 'destroy', this.remove);
},

render: function () {
return $(this.el).append(this.template(this.model.toJSON())) ;
},

clear: function() {
this.model.destroy();
}
});

当我点击类 remove_link 的链接时,clear() 函数被正确调用,并且 destroy() 被执行。

如何从外部调用 clear() ,在我的例子中,我有一个集合,并且我想删除该集合中的模型。目前我正在尝试这样做:

    message = Chatbox.ChatLogCollection.where({ hash: hash});
message.clear();
Chatbox.ChatLogCollection.remove(message);

但我得到: 类型错误:message.clear 不是一个函数

如何调用 clear() 从 View 中删除模型?

最佳答案

如果您的第一行是在集合中搜索模型,则clear()将不起作用,因为clear()与 View 相关联,而不是与模型相关联,但您是在模型上调用它。如果是模型,可以直接使用collectionInstance.remove(message)message.destroy()。但是,您随后需要 View 来监听被删除的模型,以便重新渲染 View 。

要进行检查,请添加 console.log(message) 以查看您收到的内容。

关于javascript - 在backbonejs中删除模型并更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19079779/

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