Мой атрибут модели, на мой взгляд, классифицируется как функция

#backbone.js

#backbone.js

Вопрос:

Итак, я пытаюсь связать свое представление с моей моделью, и я отлично следую инструкциям, однако, когда дело доходит до части модели, я просто в тупике.

Всякий раз, когда я пытаюсь определить модель с помощью создания экземпляра, модель классифицируется как функция, когда я console.log() ее использую.

Но позвольте мне показать вам.

 var ListModel = Backbone.Model.extend({
    defaults: {
        name: "Miles",
        last: "Coleman"
    }
});

var ListView = Backbone.View.extend({

    initialize: function(opts){
        this.template = opts.template;
        this.render();
    },

    render: function() {
        var data = this.model.toJSON();
        console.log(this.model);
        // outputs: function (){a.apply(this,arguments)} 
    }
});

var view = new ListView({
    model: ListModel,
    el: 'div',
    template: _.template('#todo-template')
});
  

Есть ли какая-то глупая деталь, которую я здесь упускаю? Спасибо!

Ответ №1:

Вы передаете сам класс, ListModel , в представление, но представление ожидает, new ListModel() например, экземпляр класса. Попробуйте

 var view = new ListView({
    model: new ListModel(),
    el: 'div',
    template: _.template('#todo-template')
});
  

См https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript для получения дополнительной информации о классах и экземплярах в JS.

Комментарии:

1. Спасибо, это сработало как шарм. Я обязательно проверю это. Я надеюсь, что моя ошибка поможет кому-то еще в будущем.