在Backbone.js中,我想在集合上引发一个自定义事件,但在沿着id(或任何任意数据)从原始的、已更改的模型传递到事件的侦听器时遇到了困难。
简单地说,下列范例会在每次模型上的'Speed'属性变更时起始事件:
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
并将其沿着给调用方/侦听方?
1条答案
按热度按时间nzk0hqpo1#
AFAIU,您想将变更模型的
car_id
属性传递给自定义事件,可以使用get
方法获取所需属性的当前值: