2012-01-21 2 views
0

여성 & 여러분,Spine.js 동적 모델 // 커피 스크립트 클래스의 동적 인 생성

짧은 버전 : 동적으로 척추 모델 클래스를 만들려고 . 기본적으로 JSON을 서버에서 가져 와서 모델 이름과 속성을 알려주고 spine.model에서 파생 된 클래스를 만들려고합니다.

Spine.js는 인스턴스화되기 전에 구성된 Coffeescript 클래스를 사용하므로 동적으로 하나 만들고 싶습니다. - 어떤 기능을 사용합니까? 상속 된 기능 중 일부만이 작동하지 않습니다.

문제 : 상속 된 함수가 작동하는 동안 가져 오기가 작동하지 않는 것처럼 보이고 클래스 이름을 설정할 방법이없는 것처럼 보입니다.

코드 : http://jsfiddle.net/thomasf1/eqksA/5/

키우면 매혹적인 당신이 커피 스크립트를 밀어 수있는 방법까지. 이 고급 수수께끼를 푸는 데 어떤 단서라도 미리 감사드립니다.

+0

나는 코드를 업데이트했다 : http://jsfiddle.net/thomasf1/eqksA/6/ 나는 클래스 메서드 대신 인스턴스를 호출하는 어리석은 실수를했다. 감사합니다 Sandro !. – thomas

+0

이것은 최신 코드입니다. http://jsfiddle.net/thomasf1/eqksA/ – thomas

+0

다른 모델에서 상속 된 모델의 척추에 바인딩 이벤트 문제로 이상한 동작을 추적했습니다 : http://jsfiddle.net/thomasf1/MfZTb/ – thomas

답변

1

Spine.js의 작동 방식은 정확히 모르겠지만 fetch은 클래스 메서드 인 CDModel이며 '정적 메시지'를 가져 오는 첫 번째 테스트에서 사용하는 방법이지만 fetch을 인스턴스 메서드로 사용하려고하는 동적 클래스입니다.

나는 내 자신의 명확성을 위해 DynamicClass로 이름을 변경,하지만 난 다음 한 :

// The class name is DynamicClass 
DynamicClass = gen ("Testclass") 
// ... more code ... 
DynamicClass.bind("refresh change", (item) -> $("#element2").html DynamicClass.first().message) 

params = type: 'POST', data: 'json=[{"message":"Dynamic msg"},{"message":"another message"}]' 
DynamicClass.fetch(params) 

난 당신이 비록 첫 번째 테스트에 대한 호출을 주석, 그러나 잘 알고없는 경우에만 이렇게 눈치를 Spine.js 왜 이것이 발생하는지 완전히 확신하지 못합니다.

이 정보가 도움이되기를 바랍니다. Sandro

+0

안녕 Sandro, 정말 고마워요. 너는 옳다. 실제 코드는 클래스 메서드를 호출하지만 여전히 실패합니다. 업데이트 된 코드도 작동하지 않습니다. 실제로 json을 가져 오는 fetch 메서드를 가져올 수 없습니다. http://jsfiddle.net/thomasf1/eqksA/7/ – thomas

+0

음 ... 나는 좀 더 테스트를 해봤는데 동적 모델을로드하려고합니다. 그러나 그것은 내가 테스트 한 것, 행동이 얻는 이방인과 같습니다. 최신 소식은 http://jsfiddle.net/thomasf1/eqksA/10/ – thomas

+0

코드를 조금 어루 만지고 jsfiddle을 업데이트합니다. http://jsfiddle.net/eqksA/15/ 클래스 작성 방법을 망쳐 놓고 동적 클래스가 생성 된 후에도 모델을 구성하고 확장해야합니다. 그래도 작동하는 것 같습니다. – Sandro