2011-11-10 48 views
1

我有以下的類,它擴展Backbone.View,我想我所有的骨幹意見,從這個類繼承:聲明骨幹擴展類在另一個文件 - CoffeeScript的

class BaseView 
    constructor: (options) -> 
    @bindings = [] 
    Backbone.View.apply(@, [options]) 

    _.extend(BaseView.prototype, Backbone.View.prototype, { 
    #etc. tec. 

BaseView.extend = Backbone.View.extend 

然後我可以延長我自己的觀點一樣這樣的:

class BusinessUnitsView extends BaseView 
    initialize: (options) -> 

這一切,如果他們是在同一個文件工作正常,但如果我單獨基本視點到不同的文件,我得到一個錯誤信息:

BaseView is undefined

如何將BaseView保存在不同的文件中並使用它擴展自定義視圖?

+0

CoffeeSript的自動作用域是很常見的沿着這些路線的混亂的來源。這個問題,以及它的答案,應該澄清的事項:http://stackoverflow.com/questions/5211638/pattern-for-coffeescript-modules/ –

回答

1

把這個BaseView.extend = Backbone.View.extend

@.BaseView = BaseView 

下,它使你的基本視點全球訪問

我始終聲明這樣我的課,它的偉大工程

class BaseView extends Backbone.View 

@.BaseView = BaseView 
+0

這工作,如果我還聲明班級類@ .BaseView – dagda1

+0

因此,它的工作原理現在對嗎?或者你需要更好的答案?我按照我總是宣佈我的骨幹班的方式更新了答案。希望它有效! –

+0

是的,謝謝 – dagda1