2011-08-10 8 views
3

이 내 application.js 여기백본 라우터에서이 오류를 어떻게 처리합니까?

window.PackageViewer = new Backbone.Router.extend({ 
routes : { 
    '':'home' 
}, 

initialize:function(){ 
    this.collection = new Package(); 
}, 

home:function(){ 
    $('body').append("<h1>Welcome</h1>"); 
} 
}); 

의 다른 packageviewer.js를 호출

window.App = { 
init: function() { 
    this.router = new PackageViewer(); 
     Backbone.history.start(); 
    } 

}; 

파일 그리고 여기 내 <body>

<script type="text/javascript"> 
$(document).ready(function(){    
    App.init(); 

}); 
</script> 
내 index.html을의 스크립트 태그입니다 즉

실행할 때 TypeError: 'undefined' is not a function (evaluating 'parent.apply(this, arguments)')

나는 이것을 이해할 수 없다. 도움!

답변

8

변경이이에

window.PackageViewer = new Backbone.Router.extend({ 
routes : { 
    '':'home' 
} 

은 :

window.PackageViewer = Backbone.Router.extend({ 
routes : { 
    '':'home' 
} 

여기에 있기 때문에 당신은 단지 새로운 인스턴스를 생성하지, Backbone.Router을 확장 할 거 야.

'this.router = new PackageViewer();를 호출 할 때 App.init에 새 인스턴스를 올바르게 작성하십시오.

나는 이것을 더미 패키지 모델 및 컬렉션으로 테스트하여 효과적이었다.

window.Package = Backbone.Model.extend({ 
}); 

window.Packages = Backbone.Collection.extend({ 
    model: Package 
}); 
+0

@rulfzid .. 감사합니다. – JABD

관련 문제