Фрагмент кода ниже, вероятно, является виновником.
this.bind("change:title", function(){
var title = this.get("title");
console.log("My title has been changed to.." + title);
});
В Javascript контекст области действия ключевого слова this основан на функции, в которой он находится. Так как this находится внутри анонимной функции (this.bind ("change: title", function () ), затем this изменил область действия.
Простое решение - использовать замыкание для установки this на другую переменную вне анонимной функции, а затем вы можете использовать переменную внутри анонимной функции.
Показ примера кода, вероятно, будет лучшеобъясните это. Обновите метод инициализации следующим образом.
initialize: function(){
console.log('this model has been initialized');
var self = this;
this.bind("change:title", function(){
var title = self.get("title");
console.log("My title has been changed to.." + title);
});
},
У вас также будет такая же проблема в методе setTitle () . Вам нужно будет добавить эту строку кода вметод initialize () для правильной установки контекста this .
_.bindAll(this, "setTitle");