2013-04-03 233 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'方法,例如: Feed模塊?我應該怎麼做呢?

3)對於需要將AnswersModule嵌入到它們自己的佈局中的每個模塊,需要不同的URL來獲取不同的答案列表,即feed有自己的答案獲取url,profile具有自己的答案URL。我如何通過答案模塊申請不同的列表?

我對於牽線木偶頗爲陌生,並且很想在繼續之前就明白這個想法和概念。任何建議上述將不勝感激!

+0

我的回答對您有幫助嗎?讓我知道我是否可以改進它 – martin308

回答

1

我會避免直接調用另一個模塊。木偶包括​​這是非常有用的。

您的模塊應該通過事件,命令和請求/響應進行交互。這將解耦您的模塊並使您的應用程序更加模塊化。

所以你的其它模塊會做這樣的事:

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

那麼你AnswersModule都會設定它的自我了迴應稱命令,做它需要做的。

請參閱this talk以獲得良好的概述。

相關問題