gpt4 book ai didi

events - Backbone listenTo 不工作

转载 作者:行者123 更新时间:2023-12-02 08:40:53 24 4
gpt4 key购买 nike

我有以下工作代码,我计划用 object.listenTo 调用替换 object.on 调用:

setField: function(field) {
if (this.field) this.field.off(null, null, this);

if (field) {
this.field = field;
this.field.on('validate', this.renderErrors, this);
}
return this;
},

这是新版本

setField: function(field) {
if (this.field) this.stopListening(this.field);

if (field) {
this.field = field;
this.listenTo(this.field, 'validate', this.renderErrors);
}
return this;
},

但有些方法无法正常工作。第二个版本没有调用 this.renderErrors 方法。

奇怪的是我相应地更新了我的应用程序的所有其余部分,没有任何问题。

我敢肯定一定有一些我遗漏的非常愚蠢的东西。

顺便说一句,这是该字段用于引发事件的代码

[...]
this.trigger('validate', this.errors);

this.error = !this.isValid();
return this.errors;
},

最佳答案

我还没有使用新的 listenTo 和 stopListening,但我可以看到在您的新版本中,您正在针对 parameter field 调用 stopListening,这意味着你的 View 仍在监听之前可见的 this.field

setField: function(field) {
if (this.field) this.stopListening(field);

您现有的版本在 this.field 上调用 off

尝试使用:

if (this.field) this.stopListening(this.field);

关于events - Backbone listenTo 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16662277/

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