2011-10-26 4 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) 

답변

7

난 그냥이 알아 냈 (내가 BTW 커피 스크립트를 사용하고 있지만,이 무관하다), 나는 오류가 발생 된 backbone.js 파일의 지점으로 내 코드를 통해 강화 570 번 라인 (축소 된 obv가 아님)에서 일어나는 것을 발견했습니다. 컬렉션이 자신의 model 속성을 사용하려고 시도했을 때 this.model을 사용하면 정의되지 않은 오류가 발생했습니다.

내가 돌아가서 내 코드를 살펴본 후 모델 이전에 컬렉션을 선언했음을 깨달았습니다. 따라서 컬렉션의 model 속성을 설정할 때이를 undefined로 설정했습니다!

+0

나를 위해 같은 문제가 있습니다. 모델 이전에 컬렉션을 정의한 코드를 실행했습니다. – EricSonaron