如何修复Uncaught TypeError:无法读取未定义的属性'prototype'?

Cat*_*t H 36 javascript jquery backbone.js

我有一点问题.我正在使用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>
Run Code Online (Sandbox Code Playgroud)

比我启动服务器和浏览器控制台键入:

var x =new App.Collections.Users();
x.fetch()
Run Code Online (Sandbox Code Playgroud)

这跟随错误:Uncaught TypeError: Cannot read property 'prototype' of undefined.但数据存在作为回应.图片详情.如何解决这个问题?谢谢你的回答.在此输入图像描述

在此输入图像描述

Cat*_*t H 63

我修复了这个bug.问题是我创建了Collection然后创建了Model.集合使用用户模型作为工作单元,但是当我定义此集合时,我没有定义模型.

所以,如果你想避免这个bug,首先要定义一个Model,然后才定义Collection.

  • 这也是我的情况的问题,谢谢!我正在使用Gulp,所以如果有人使用它,请检查加载顺序. (4认同)
  • 上帝保佑StackOverflow.那条错误信息永远不会让我陷入那种幻想.我也是吞咽缩小的受害者. (3认同)

rzs*_*khr 27

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>
Run Code Online (Sandbox Code Playgroud)