Как исправить 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]()
Ответы
Ответ 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>