Her yere bir cevap için baktım ama bulduğum şeyden memnun değildim.Omurgada this.model tanımlanmamış, neden?
Sorun şu ki, Addy Osmani'den Backbone'da bir 'Todo' uygulaması yapmak için bir eğitim yapıyorum, ancak konsola baktığımda, this.model is undefined
olduğunu belirten bir hata alıyorum.
Bu SO yanıtını Backbone model error displayed in console denedim, ancak yine de aynı hatayı alıyorum. Lütfen bana neyin yanlış olduğunu söyle.
Bu arada, this.model
veya this.collection
nedir? Backbone.Model
ve Backbone.Collection
'a başvurdukları konusunda bir fikrim var ama nasıl çalışıyorlar? Ben Model
ve Collection
ve Model
ve Collection
açıkça tanımladığınızda, başka bir öğretici this.collection
ve this.model.models
da tanımlanmamış çünkü bunu soruyorum.
Çok teşekkürler
JS:
//Model
var Todo = Backbone.Model.extend({
defaults: {
title: 'Enter title here',
completed: true
},
validate: function(attrs) {
if (attrs.title === undefined) {
return 'Remember to enter a title';
}
},
initialize: function() {
console.log('This model has been initialized');
this.on('change:title', function() {
console.log('-Title values for this model have changed');
});
this.on('invalid', function(model, error) {
console.log(error);
});
}
});
//View
var TodoView = Backbone.View.extend({
el: '#todo',
tagName: 'li',
template: _.template($('#todoTemplate').html()),
events: {
'dbclick label': 'edit',
'click .edit': 'updateOnEnter',
'blur .edit': 'close'
},
initialize: function() {
_.bindAll(this, 'render');
this.render();
},
render: function() {
this.$el.html(this.template(this.model.toJSON()));
this.input = this.$('.edit');
console.log(this.model.toJSON());
return this;
},
edit: function() {
//do something...
},
close: function() {
//do something...
},
updateOnEnter: function() {
//do something...
}
});
var todoview = new TodoView();
console.log(todoview.el);
//Collection
var TodoList = Backbone.Collection.extend({
model: Todo
});
Yanlış olabilirim, ama bence 'todos'u' koleksiyon 'olarak değil' model 'olarak görmek istiyorsunuz, böylece' this.collection' –