gpt4 book ai didi

backbone.js - Backbone listenTo 多个属性触发多个事件

转载 作者:行者123 更新时间:2023-12-04 19:04:29 25 4
gpt4 key购买 nike

我有一个 型号 其中在 初始化 功能我有以下代码:

this.listenTo(this, 'change:re change:read', this.patch);

补丁函数看起来像这样:
patch: function(object) {
this.save(object.changed, { patch: true });
},

在我的应用程序的其他地方,我可能会运行:
model.set({ re: 1 });

或者:
model.set({ read: new Date() });

两者都可以完美运行,但是当我打电话时:
model.set({ re: 1, read: new Date() });

补丁函数被调用两次,并且有两次到服务器的往返行程。如果可能的话,我想将其缩减为一次往返。

任何人都可以帮助解决这个问题吗?

非常感谢

大卫

最佳答案

您的 patch方法被调用一次 'change:re'事件又一次为 'change:read'事件。 Backbone 不知道您的意思是“告诉我 reread 中的至少一个是否发生变化”,它只知道您希望在 re 时被告知更改并告知 read变化。

你可以听 'change'事件并使用 changed 自己进行过滤哈希:

changed model.changed

The changed property is the internal hash containing all the attributes that have changed since the last set.



像这样的东西:
this.listenTo(this, 'change', this.patch);

进而:
patch: function() {
if('re' in this.changed || 'read' in this.changed)
this.save(this.changed, { patch: true });
}

演示: https://jsfiddle.net/ambiguous/ja20z021/

关于backbone.js - Backbone listenTo 多个属性触发多个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28707967/

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