2012-07-23 3 views
1

필자는 Backbone Marionette을 내 자신의 순수한 백본 응용 프로그램을 위해 흉내 내고 있습니다. 정말 유망스럽게 보이지만, 확실하지 않은 것은 모듈 구조와 이니셜 라이저가 실행되는 순서입니다. 주로 내가 Auth, Todo, Comments 등과 같은 모듈을 포함하는 최상위 수준 Application이있을 것이다 생각하고 Backbone.history.startBackbone Marionette Module 이니셜 라이저 주문

에 대한 (나는 보통 프레임 워크를 사용해 간단한 할 일 응용 프로그램과 함께 시작). 각 모듈에는 자체 경로가 있습니다. 내 이해에서 그들은 Backbone.history.start() 전에 초기화해야합니다. 모든 모듈이 내 최상위 레벨 Application에서 시작하도록 트리거 한 다음 시작 기록을 시작합니까? 이렇게하면 모듈 라우터가 Backbone.history을 시작하기 전에 초기화됩니다. 이것은 불필요한 모듈을 시작하는 것처럼 들리므로 응용 프로그램 속도가 느려 집니까?

물론 내가 아는 대부분의 앱은 매우 커질 필요가 없습니다. 시작 속도는 아마도 허용 될 수 있습니다. 그러나 가장 좋은 방법이나 추천

답변

2

모듈은 기본적으로 부모 응용 프로그램을 시작 뭐죠 궁금하지만이 메소드를 오버라이드 (override) 할 수 있습니다

하위 모듈은 false로 startWithParent의 설정하여이 동작을 재정의 할 수 있습니다. 이렇게하면 부모의 시작 호출 에 의해 시작되지 않습니다.

언제든지 수동으로 MyApp.MyModule.start()으로 전화 할 수 있습니다.

Application.start()으로 전화하면 모듈은 역순으로 실행됩니다. docs :

하위 모듈 시작은 깊이 우선 계층 탐색에서 수행됩니다. 즉, Foo.Bar.Baz의 계층 구조는 Baz를 먼저 시작한 다음 Bar, 그리고 마지막으로 Foo를 시작합니다.

Application.start()을 호출 한 후 Backbone.history.start()으로 전화를 걸고 응용 프로그램에서 하나 이상의 라우터를 인스턴스화해야합니다. Backbone.history.start() (적어도 this answer from BB.Marionette's Derick Bailey에 따라)

을 호출 한 후에 추가 라우터를 인스턴스화하는 데 문제가 없어야합니다.
관련 문제