2012-08-25 100 views
1

骨架的任何情况下不工作,我的控制台说,这是不确定的......骨干未定义

截至目前,它说: 遗漏的类型错误:无法调用方法的不确定

“开始”

这关联到该行:

Backbone.history.start() 

这是我app.js代码:

app = 
    facebookAuth() 

class manageView extends Backbone.View 
    constructor: -> 
     super 

    initialize: -> 

    template: _.template($('#manage').html()) 

    render: -> 
     $('#page').append(@template()) 


class AppRouter extends Backbone.Router 
    routes: 
     "": "manage" 

    initialize: -> 

    manage: -> 
     new manageView() 


$(document).ready(-> 
    console.log('document ready') 
    app.AppRouter = new AppRouter() 
    Backbone.history.start() 
) 

这是怎么我包括我的js文件(它们都指向正确的路径):

<script type="text/javascript" charset="utf-8" src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
    <script type="text/javascript" charset="utf-8" src="../js/underscore-min.js"></script> 
    <script type="text/javascript" charset="utf-8" src="../js/backbone-min.js"></script> 
    <script type="text/javascript" charset="utf-8" src="../js/bootstrap.min.js"></script> 
    <script type="text/javascript" charset="utf-8" src="../js/less-1.3.0.min.js"></script> 
    <script type="text/javascript" charset="utf-8" src="../js/facebook-auth.js"></script> 
    <script type="text/javascript" charset="utf-8" src="../js/app.js"></script> 

谁能告诉我为什么?谢谢!

回答

2

可能路由器当时没有创建。尝试下:

class AppRouter extends Backbone.Router 
routes: 
     "": "manage" 

    initialize: -> 
     Backbone.history.start() 
    manage: -> 
     new manageView() 


$(document).ready(-> 
    console.log('document ready') 
    app.AppRouter = new AppRouter() 
) 
+0

可惜没有,我现在得到这个错误:未捕获的类型错误:未定义 – Danny

+0

无法设置属性“AppRouter”这意味着,“应用”(应用程序= facebookAuth())是不确定的。您可以创建路由器自变量,而不是应用程序对象的字段。 – Arkady

+0

或者,您可以组织应用程序创建时触发的回调。 – Arkady