Сообщение от alexandr2006
|
Запускаю, но title у страницы почему-то выводится "Todo title", а не "myTodo title" и значение title тоже не меняется. Почему?
|
this.model.docTitle;
Это свойство объекта, которое в данном случае берется из прототипа (из конструктора) __proto__.docTitle и значение которого было задано в:
var Todo = Backbone.Model.extend({
defaults : {title:'old', completed: true},
docTitle : 'Todo title'
});
Оно не было изменено в дальнейшем кодом:
var myTodo = new Todo ({docTitle:'myTodo title',completed: false, title: 'new'});
который записывает значение не в __proto__.docTitle , а в attributes.docTitle
измените (как вариант):
document.title = this.model.docTitle;
на
document.title = this.model.attributes.docTitle;
или через API библиотеки Backbone:
document.title = this.model.get('docTitle');
Сообщение от alexandr2006
|
Далее когда я щелкаю по тегу форм, console.log(this.$el === e.target); почему-то выдает false. Почему?
|
this.$el содержит ссылку на элемент input#todo_complete
e.target содержит ссылку на элемент form#todo
Это разные объекты, поэтому результат их сравнения через "===" false
Измените временно код на:
click_function: function(e){
console.log(e.target.tagName);
console.log('e.target : ');
console.dir(e.target);
console.log('this.$el : ');
console.dir(this.$el);
console.log(this.$el === e.target);
}
и посмотрите самостоятельно, что там содержится