gpt4 book ai didi

backbone.js - 如何在Backbone模型上手动触发 `change`事件?

转载 作者:行者123 更新时间:2023-12-03 09:20:35 24 4
gpt4 key购买 nike

我正在尝试在属于集合的 Backbone 模型上手动触发 change 事件。这是一个最小的示例:( JSFiddle )

var PersonModel = Backbone.Model.extend({});

var PersonCollection = Backbone.Collection.extend({
model: PersonModel
});

var person = new PersonModel({ name: 'Spike' });
var people = new PersonCollection([person]);

person.trigger('change'); // throws error
console.log('triggered event successfully');

但是当我触发事件时,我收到以下错误:(在 JSFiddle 中,打开 Javascipt 控制台查看完整错误)

Uncaught TypeError: Cannot read property 'previousAttributes' of undefined

我该如何解决这个问题?

(我这样做的原因是在实际代码中模型有一个集合 - 例如 person.things = new ThingCollection(); - 我想手动触发当 person 集合发生变化时,发生 change 事件)

最佳答案

change 事件预计具有参数,如 event catalog 中所述。 。

事件应该有(model, options)作为参数,其中model是模型本身,options是与set一起使用的选项对象。我一时想不起选项是否是可选的。

就您而言,由于您只是手动触发事件,因此您必须提供这些参数。您看到的错误来自于尝试访问 model.previousAttributes 且模型未定义的其他代码。

TL;博士:

person.trigger('change', person, {});

您或许可以省略 {}

关于backbone.js - 如何在Backbone模型上手动触发 `change`事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32394133/

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