Backbone无法读取骨干视图中未定义错误的属性“属性”

时间:2013-12-16 15:01:55

标签: javascript backbone.js backbone-views

我刚刚决定学习骨干。我正在关注视频教程。一切都运行良好,但在我的结尾,我得到这个错误“Uncaught TypeError:无法读取未定义的属性'名称'。

这是我的代码:


    var MenuItemDetails = Backbone.View.extend({
        render: function() {
            var markup = this.options.name + this.options.category + this.options.imagepath;
            // I also had some html markup in the string above, of course, but I've striped it because stackoverflow didn't show it in the preview of my post.
            this.$el.html(markup);
            return this;
        }
    });

    var AppRouter = Backbone.Router.extend({
        routes: {
            "" : "list",
            "menu-items/new" : "itemForm",
            "menu-items/:item" : "itemDetails"
        },

        list: function() {
            $('#app').html('List screen');
        },

        itemDetails: function(item) {
            var view = new MenuItemDetails({ name: item, category: 'Some category', imagepath: 'no-image.jpg' });
            $('#app').html(view.render().el);
        },

        itemForm: function() {
            $('#app').html('New item form');
        }
    });

    var app = new AppRouter();

    $(function() {
        Backbone.history.start();
    });

“itemDetails”函数给出了“未捕获的TypeError:无法读取未定义的属性'名称”错误。当然,如果我不在视图中使用'name'属性,我会得到“Uncaught TypeError:无法读取未定义的属性'类别'”。在我正在关注的视频教程中,一切正常(它使用了版本0.9.1 of backbonejs)。我使用最新的(1.1.0)。

有谁知道为什么我会收到此错误? 没有任何拼写错误,一切都是正确的顺序(完全如视频教程,它的工作原理)。为什么骨干会把这个错误抛给我?

0 个答案:

没有答案