2011-10-26 42 views
3

我正在嘗試使用類似於下面的代碼中的JSON對象數組來引導骨幹網集合。但是,當我嘗試調用集合對象的重置時,我從主幹中獲得一個錯誤 - Uncaught TypeError: undefined is not a function帶有JSON對象數組的Backbone.js引導

如果我將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) 

(我用的CoffeeScript順便說一句,那不過是無關緊要的)

回答

7

我想通了這一點,我通過我的代碼走到在錯誤是發生在Backbone.js的文件來看,並發現它發生在570行(沒有縮小obv)。當收集試圖使用它自己的model財產使用this.model它拋出未發現的錯誤。

當我回去看看我的代碼時,我意識到我是在模型之前宣佈集合,所以當我設置集合的model屬性時,它將它設置爲undefined!

+0

對我來說同樣的問題。我正在運行代碼,在模型之前定義了集合。 – EricSonaron