次のように、コレクション内のモデルでトリガーされたイベントをリッスンするようにコレクションを設定しようとしています。
var Collection = Backbone.Collection.extend({
initialize: function() {
this.on('playback:completed', this.playNext);
},
playNext : function() { }
});
私のテストでは、新しい Backbone.Models をコレクションのインスタンスに追加してから、それらをトリガーplayback:completed
します...そしてplayNext
呼び出されません。これを正しく設定するにはどうすればよいですか?
編集: テスト コードの追加 (Jasmine を使用):
var collection;
describe('Collection', function() {
beforeEach(function() {
collection = new Collection();
});
it('should playNext when playback:completed is triggered', function() {
var model1 = new Backbone.Model();
var model2 = new Backbone.Model();
var spy = spyOn(collection, 'playNext').andCallThrough();
collection.add(model1);
collection.add(model2);
model1.trigger('playback:completed');
expect(spy).toHaveBeenCalled();
});
});