Подтвердить что ты не робот

Как исправить Uncaught TypeError: Не удается прочитать свойство 'prototype' из undefined?

У меня небольшая проблема. Я использую backbone.js. Я написал этот код, как в примере:

<script>
$(document).ready(function () {
    window.App = {
        Views: {},
        Models: {},
        Collections: {}
    }

    App.Collections.Users = Backbone.Collection.extend({
         model: App.Models.User,
         url: 'service'
    });
    App.Models.User = Backbone.Model.extend({});

    App.Views.App = Backbone.View.extend({
         initialize: function() {
             console.log( this.collection.toJSON() );
         }
    });

});
</script>

Чем я запустил сервер, а в консоли браузера:

var x =new App.Collections.Users();
x.fetch()

И это следует за ошибкой: Uncaught TypeError: Cannot read property 'prototype' of undefined. Но данные присутствуют в ответ. Подробности на картинке. Как это исправить? Спасибо за ответы. enter image description here

enter image description here

4b9b3361

Ответ 1

Я исправил эту ошибку. Проблема заключалась в том, что я создал Collection, а затем Model. Коллекции используют модель пользователя, как рабочую единицу, но когда я определил эту коллекцию, я не определил модель.

Итак, если вы хотите избежать этой ошибки, сначала определите модель, а затем определите коллекцию.

Ответ 2

Backbone Js имеет зависимость от underscore.js и jQuery, попробуйте переупорядочить ресурсы. Это сработало для меня:

<head>
    <title>Backbone</title>

    <!-- Scripts Load Here-->       
    <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
    <script type="text/javascript" src="js/underscore.js"></script>
    <script type="text/javascript" src="js/backbone.js"></script>
</head>