После восстановления моей коллекции из localStorage перезаписанные методы (getLabel () в следующем примере) больше не вызываются. Вместо этого вызывается базовый метод. Я думаю, проблема в том, что я говорю коллекции использовать BaseModel. Но как изменить коллекцию для работы с моделями KeywordLog и CommentLog?
Я использую следующую модель наследования:
var BaseLog = Backbone.Model.extend({
defaults: {
timecode: null,
color: null,
isRange: false,
},
getLabel: function() {
return 'base';
}
});
var KeywordLog = BaseLog.extend({
defaults: _.extend({}, BaseLog.prototype.defaults, {
keyword: null,
}),
getLabel: function() {
return 'keyword';
}
});
var CommentLog = BaseLog.extend({
defaults: _.extend({}, BaseLog.prototype.defaults, {
text: null,
}),
getLabel: function() {
return 'comment';
}
});
var Loglist = Backbone.Collection.extend({
// This might be the problem after restoring drom localStorage..?
model: BaseLog,
localStorage: new Store("storage")
});