我有点问题。我正在使用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
。但数据存在作为回应。图片详情。如何解决这个问题?
谢谢你的回答。
答案 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";
当我删除此声明时,它对我有用。
检查您正在使用的文件的导入,是否导入了不必要的内容