无法设置未定义的属性'new_form'

时间:2013-03-01 18:05:50

标签: javascript backbone.js

我在使用Treehouse的Backbone.js教程时遇到了麻烦。这是我的代码:

var NotesApp = (function () {
    var App = {
        stores: {}
    }

    App.stores.notes = new Store('notes');
    // Note Model
    var Note = Backbone.Model.extend({
        //Local Storage
        localStorage: App.stores.notes,

        initialize: function () {
            if (!this.get('title')) {
                this.set({
                    title: "Note at " + Date()
                })
            };

            if (!this.get('body')) {
                this.set({
                    body: "No Body"
                })
            };
        }

    })

    //Views
    var NewFormView = Backbone.View.extend({
        events: {
            "submit form": "createNote"
        },

        createNote: function (e) {
            var attrs = this.getAttributes(),
                note = new Note();

            note.set(attrs);
            note.save();
        },

        getAttributes: function () {
            return {
                title: this.$('form [name=title]').val(),
                body: this.$('form [name=body]').val()
            }
        }

    });

    window.Note = Note;

    $(document).ready(function () {

        App.views.new_form = new NewFormView({
            el: $('#new')
        });

    })

    return App
})();

我收到错误:Cannot set property 'new_form' of undefined

我试图尽可能地回复并复制代码,但我仍然无法让它工作。有什么建议?

1 个答案:

答案 0 :(得分:3)

stores: {}后添加, views: {}

您需要一个对象来附加您的视图 - JavaScript没有活力