在Backbone.js集合上引发自定义事件并传递数据
Raising custom event on Backbone.js collection and pass along data
在Backbone.js中,我想在集合上引发一个自定义事件,但很难将id(或任何任意数据)从原始的、已更改的模型传递给事件的侦听器。
简单地说,每当我的模型上的属性"速度"发生变化时,以下示例都会启动一个事件:
var CarCollection = Backbone.Collection.extend({
model: Car,
url: '/api/cars/',
parse: function (response, options) {
return response;
},
initialize: function () {
// if the car's 'Speed' changes, trigger the event
this.on('change:Speed', this.onSpeedChanged, this);
},
onSpeedChanged: function(car_id) {
// QUESTION: how to get 'car_id' here?
this.trigger('SpeedChanged', car_id);
}
});
现在让我做这样的事情:
var cars = new CarCollection();
cars.on("SpeedChanged", function (car_id) {
console.log("This also works!");
// QUESTION: how to get 'car_id' here (= undefined, of course)?
});
请注意,这一切都有效,但问题是:如何从更改的模型中获取car_id
,并将其传递给调用者/监听器?
AFAIU,您希望将更改后的模型的car_id
属性传递给自定义事件。您可以使用get
方法来获得所需属性的当前值:
var CarCollection = Backbone.Collection.extend({
...
onSpeedChanged: function(model) {
// model - changed model
this.trigger('SpeedChanged', model.get('car_id'));
}
});
相关文章:
- 当使用“”时,事件数据在jquery中返回空对象;on()”;
- 如何更新angular2中组件之间的事件数据
- 不;t使用ajax在fullcalender.js中加载事件数据
- jQuery触发器触发点击事件,但不发送事件数据
- 在addListener中传递google事件数据
- 如何获取整个 JavaScript 范围内上次单击的事件数据
- 动画步骤和事件数据
- 为什么此 Google 日历 API 请求不返回开始时间等事件数据
- ui5 SplitContainer 不会将事件数据传递给子元素中的 onBeforeShow
- 如何动态打印 JQuery 移动点击事件数据
- 加载从跨文档消息传递中作为事件数据获得的 pdf
- WoopraTracker 未在自定义事件数据中定义
- 如何处理来自 websocket 的消息事件数据
- 如何将多个事件数据组合为一个适合与fullcalendar一起使用的对象或变量
- Ace编辑器-如何传递事件数据
- 谷歌可视化图表在选择事件数据时发出警报
- 如何将事件数据和id传递给javascript函数
- 使用jQuery将事件数据传递给回调函数
- 如何在两个模块之间传递事件数据
- 正在尝试将事件数据传递给函数