2013-04-03 2 views
1

이것은 내 첫 번째 시도 인 마리오 네트이며 아래에서 볼 수 있듯이 내 앱의 애플리케이션 인프라를 설계했습니다.다른 모듈 (Backbone Marionette)에서 모듈의 API에 액세스하는 방법

기본적 아이디어는 급지 모듈을 즉 여러 곳에서 재사용 할 수있는 '답변'모듈을 가지고 있었다의 답변 모듈 다소 어떻게 표시되는지 모듈 등

enter image description here

예 프로필 :

@MyApp.module "AnswersModule", (MusesModule, App, Backbone, Marionette, $, _) -> 
    class AnswersModule.Router extends Marionette.AppRouter 
    appRoutes: 
     "answers" : "listAnswers" 

    API = 
    listAnswers: -> 
     //Method will fetch a list of muses and populate a view template 
     AnswersModule.List.Controller.listAnswers() 

    App.addInitializer -> 
    new AnswersModule.Router 
     controller: API 

질문 :

1) 꼭두각시를 사용하여 최고의 연습이 디자인 인라인인가?

2) 다른 모듈에서 AnswersModule의 'listAnswers'메소드에 직접 액세스 할 수 있습니까? 예 : 피드 모듈? 그런 일을 어떻게해야합니까?

3) 자신의 레이아웃에 AnswersModule을 삽입해야하는 각 모듈에 대해 서로 다른 답변 목록을 가져 오기 위해 다른 URL이 필요합니다. 즉, 피드에는 응답에 대한 고유 URL이 있고 프로필에는 답변에 대한 자체 URL이 있습니다. Answers Module을 통해 다른 목록을 요청하려면 어떻게합니까?

저는 오히려 네트 위젯에 익숙하지 않고 계속 진행하기 전에 아이디어와 개념을 얻고 싶습니다. 위의 모든 조언을 크게 주시면 감사하겠습니다!

+0

내 답변이 도움이 되었습니까? 개선 할 수 있는지 알려주세요. – martin308

답변

1

다른 모듈을 직접 호출하는 것을 피할 수 있습니다. 마리오네트에는 this library이 포함되어있어 매우 유용합니다.

모듈은 이벤트, 명령 및 요청/응답을 통해 상호 작용해야합니다. 그러면 모듈이 분리되어 응용 프로그램이 모듈화됩니다.

그래서 다른 모듈이 이런 짓을 할 것이다 :

API = 
    someMethod: -> 
    App.commands.execute('list-answers', { url: 'amazing-answers' }) 

다음 AnswersModule 그 명령에 응답하고 할 필요가 일을 할 자신을 설정 한 것입니다.

좋은 개요는 this talk을 참조하십시오.

관련 문제