2013-03-08 64 views
3

我正在使用RequireJS爲BackboneJS Web應用程序加載我的JavaScript模塊,但此刻我遇到了樣式問題。RequireJS中的變量依賴項

我有兩個類共享很多代碼,但它們都是不同類的子類。

TemplateLessonView       LessonView 
     |          | 
     |          | 
    EditorApp <-- these share code --> MainApp 

現在讓事情幹了,我想MainApp延長EditorApp,但隨後EditorApp的依賴被加載並EditorApp調用它的一些基類的通過這種格式的手段功能:this.constructor.__super__.initialize.apply(this);

一種解決方案是改變EditorApp的依賴時,模塊從MainApp的模塊(所以我會要求LessonView但它傳遞給EditorAppTemplateLessonView加載。

有沒有人知道一種方法來做到這一點,或有另一個建議來完成我在這裏嘗試的?

+2

如果他們共享代碼,如何將它移動到一個混合,讓兩個對象分享? – 2013-03-08 11:05:44

+2

看起來像Simon所說的那樣,你實際上可能想從EditorApp和MainApp中提取公共代碼,並讓它們共享這些代碼(通過繼承它,通過混合它,或者通過使用合成而不是無關緊要)。很難說,沒有任何代碼從你的課程...你可以發佈一些? – phtrivier 2013-03-08 11:12:51

回答

0

上的方式來解決這個問題是創建一個模塊,你將在這兩個類定義導入...

類似的東西:

(...require stuff ...) 
return { 
    myfct1 : function(){ 
    }, 
    myfct2 : function(){ 
    } 
} 

,然後你可以導入你需要的模塊它,然後調用你的通用代碼就像一個庫...