Я только что решил научиться магистрали. Я следую видеоуроку. Там все отлично работает, но в конце я получаю эту ошибку «Uncaught TypeError: невозможно прочитать свойство« имя неопределенного ».Backbone Невозможно прочитать свойство «свойства» неопределенной ошибки в базовом виде
Вот мой код:
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: Can not read property» category «undefined». В видеоуроке, за которым я следую, все работает нормально (используется версия 0.9.1 backbonejs). Я использую последние (1.1.0).
Кто-нибудь знает, почему я получаю эту ошибку? Нет ничего орфографического, все в правильном порядке (точно так же, как в видеоуроке, где оно работает). Почему позвоночник выбрасывает мне эту ошибку?
Мне нравится белый список вариантов. Еще один ответ стоит прочитать :) – nikoshr
@nikoshr: Да, мне никогда не нравятся автоматические вещи 'this.options', слишком много которых невозможно отслеживать,« как я должен отлаживать этот материал на расстоянии до шести месяцев? » магия для моих вкусов. –