CoffeeScript中的Simple Backbone.JS错误
我开发了一个非常简单的Backbone.JS应用程序,用于学习CoffeeScript+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
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