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

时间:2013-10-31 09:33:03

标签: 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>

比我启动服务器并在浏览器控制台中输入:

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

这是错误:Uncaught TypeError: Cannot read property 'prototype' of undefined。但数据存在作为回应。图片详情。如何解决这个问题? 谢谢你的回答。enter image description here

enter image description here

4 个答案:

答案 0 :(得分:63)

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

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

答案 1 :(得分: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>

答案 2 :(得分:1)

就我而言,以下导入是不正确的:(反应)

// remove
import e from 'express';

答案 3 :(得分:0)

就我而言,导入不正确

import { urlencoded } from "express";
当我删除此声明时,它对我有用。 检查您正在使用的文件的导入,是否导入了不必要的内容