Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CoffeeScript中的Simple Backbone.JS错误_Backbone.js_Coffeescript - Fatal编程技术网

CoffeeScript中的Simple Backbone.JS错误

CoffeeScript中的Simple Backbone.JS错误,backbone.js,coffeescript,Backbone.js,Coffeescript,我开发了一个非常简单的Backbone.JS应用程序,用于学习CoffeeScript+Backbone.JS: class Todo extends Backbone.Model defaults: title: '' priority: 0 done: false class Todo extends Backbone.Collection model: Todo localStorage: new Backbone

我开发了一个非常简单的Backbone.JS应用程序,用于学习CoffeeScript+Backbone.JS:

class Todo extends Backbone.Model 
    defaults:
        title: ''
        priority: 0
        done: false

class Todo extends Backbone.Collection
    model: Todo
    localStorage: new Backbone.LocalStorage("Todos")

t = new Todo({ title: 'todo 1' })
console.log t
但是我得到了(看起来非常像一个无限循环)

但在咖啡中,它的脚本

class Todo extends Backbone.Model

它们是一样的吗?我不这么认为,这是问题的原因吗

您的收藏中有一个打字错误,您想称它为
Todo
,而不是
Todo

class Todos extends Backbone.Collection
    model: Todo
    localStorage: new Backbone.LocalStorage("Todos")
如果我这样做:

class Todo extends Backbone.Model 
class Todo extends Backbone.Collection
    model: Todo

t = new Todo(title: 'todo 1')
console.log t​​​
我收到“超过最大调用堆栈大小”。错误:

但是,如果集合被称为
Todos
,那么事情就会发生:

您的问题似乎是集合的
model
属性是集合本身,因此当集合尝试创建一个实际上是集合的模型时,您最终会遇到无限递归

class Todos extends Backbone.Collection
    model: Todo
    localStorage: new Backbone.LocalStorage("Todos")
class Todo extends Backbone.Model 
class Todo extends Backbone.Collection
    model: Todo

t = new Todo(title: 'todo 1')
console.log t​​​