【问题标题】:Backbone.js bootstrap with an array of JSON objects带有 JSON 对象数组的 Backbone.js 引导程序
【发布时间】:2011-10-26 10:03:30
【问题描述】:

我正在尝试使用 JSON 对象数组来引导主干集合,如下面的代码所示。但是,当我尝试在集合对象上调用 reset 时,我从主干收到一个错误 - Uncaught TypeError: undefined is not a function

如果我将 JSON 数组更改为 Users.UserModel 对象数组,那么它可以工作。我一定遗漏了集合 initialization 方法中的一些基本内容,或者与我见过的所有示例类似的东西,实际上并没有包含比对 reset 的调用更多的代码。

class Users.UsersCollection extends Backbone.Collection
    model: Users.UserModel
    url: '/Users'

class Users.UserModel extends Backbone.Model

# document ready
$ ->
    Users.userCollection = new Users.UsersCollection()

    users = [
        { Id: 1, Username: 'dan', FirstName: 'Dan', LastName: 'Ormisher' },
        { Id: 1, Username: 'simon', FirstName: 'Simon', LastName: 'Lomax' },
        { Id: 1, Username: 'jon', FirstName: 'Jon', LastName: 'Swain' },
        { Id: 1, Username: 'martin', FirstName: 'Martin', LastName: 'Rue' }
    ]

    Users.userCollection.reset(users)

(顺便说一句,我正在使用咖啡脚本,但这无关紧要)

【问题讨论】:

    标签: javascript jquery json backbone.js


    【解决方案1】:

    我刚刚想通了这一点,我单步执行了我的代码,直到出现错误的主干.js 文件中的点,发现它发生在第 570 行(不是缩小的 obv)。如果集合试图使用 this.model 使用它自己的 model 属性,则会引发未定义的错误。

    当我回去查看我的代码时,我意识到我是在模型之前声明集合,所以当我设置集合的 model 属性时,它被设置为未定义!

    【讨论】:

    • 对我来说同样的问题。我正在运行在模型之前定义集合的代码。
    猜你喜欢
    • 1970-01-01
    • 2017-10-08
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多