Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js:未到达路由器回调_Backbone.js_Coffeescript_Backbone Routing - Fatal编程技术网

Backbone.js:未到达路由器回调

Backbone.js:未到达路由器回调,backbone.js,coffeescript,backbone-routing,Backbone.js,Coffeescript,Backbone Routing,我在获取一个简单的应用程序示例时遇到问题。我正在使用rails gem上的主干 这是我的App.js.coffee: window.App = Models: {} Collections: {} Views: {} Routers: {} $(document).ready -> MyRouter = Backbone.Router.extend( routes: '' : 'index'

我在获取一个简单的应用程序示例时遇到问题。我正在使用rails gem上的主干

这是我的App.js.coffee:

    window.App =
      Models: {}
      Collections: {}
      Views: {}
      Routers: {}

 $(document).ready ->
    MyRouter = Backbone.Router.extend(
       routes:
        '' : 'index'

        index: ->
            console.log("Inside router")
            new App.Views.HomeIndex()
    )
    router = new MyRouter
    Backbone.history.start
    console.log(router.routes[Backbone.history.fragment])
路由器永远不会到达索引回调,视图也永远不会呈现

以下是Rails呈现的HTML页面:

<!DOCTYPE html>
<html>
<head>
  <title>App</title>
  <link href="/assets/application.css?body=1" media="screen" rel="stylesheet" />
  <script src="/assets/jquery.js?body=1"></script>
<script src="/assets/jquery_ujs.js?body=1"></script>
<script src="/assets/underscore.js?body=1"></script>
<script src="/assets/backbone.js?body=1"></script>
<script src="/assets/app.js?body=1"></script>
<script src="/assets/homes/index.js?body=1"></script>
<script src="/assets/models/home.js?body=1"></script>
<script src="/assets/collections/homes.js?body=1"></script>
<script src="/assets/views/homes/homes_index.js?body=1"></script>
<script src="/assets/routers/homes_router.js?body=1"></script>
<script src="/assets/routers/homes_routers.js?body=1"></script>
<script src="/assets/application.js?body=1"></script>
  <meta content="authenticity_token" name="csrf-param" />
<meta content="sA25aKKc/j2EJL6k8J0gm8SxGU2mHRhH8Sb6Sye81Ac=" name="csrf-token" />
</head>
<body>

<div id="app"></div>

</body>
</html>

应用程序

要正确实例化主干路由器并使其路由到我的视图,我需要做什么?

看起来您只需要调用
主干.history.start
,而不是简单地引用它。这只是引用函数:

Backbone.history.start
这就叫:

Backbone.history.start()
只有在提供某些参数时,函数调用括号才是可选的


演示:

除非您的视图从其ctor中呈现自身,否则您不会在任何地方调用render。您完全正确。真不敢相信我错过了!非常感谢!