2013-10-15 31 views
1

我正在尝试使用骨干,牵线木偶和咖啡标记制作多页面应用程序。Backbone,xxx不是构造函数?

应用/ home.coffee

define [ 
    'App' 
    './index/index' 
], 
(App, HomeIndex) -> 
    class HomeApp extends App 
     constructor :() -> 
      super 
      console.log typeof HomeIndex #return object 
      @homeIndex = new HomeIndex() #TypeError: HomeIndex is not a constructor 
      @initialize() 

     initialize: -> 
      console.log 'app initialize' 
      App.contentArea.show homeIndex 

应用/家庭/索引/ index.coffee

define [], 
()-> 
    class HomeIndex extends Backbone.Marionette.Layout 
     template: '<div>Hello, Backbone! </div>' 

     constructor:() -> 
      console.log '!' 

     initialize: (options) -> 
      @template = _.template @template 
      console.log "Home Index initialized" 

     render:() => 
      @$el.html @template 

我不能初始化HomeIndex,任何人都知道我做错了什么?

请指教

更新时间:

define [ 
     'App' 
     'apps/home/index/index' 
    ], 

但仍typeof运算HomeIndex返回的对象,无法正常工作。

回答

0

首先,当您遇到这样的问题时,请检查由Requirejs加载的文件。您可能已经看到./index/index或者不是您所期望的,或者根本没有加载。

基本上,AMD不支持相对链接。仅链接相对于baseUrl