Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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_Router_Marionette - Fatal编程技术网

Backbone.js 无法初始化新的木偶路由器

Backbone.js 无法初始化新的木偶路由器,backbone.js,router,marionette,Backbone.js,Router,Marionette,我正在尝试在“产品”模块中创建一个新的应用程序路由器,如下所示,使用木偶 @MyApp.module "ProductsModule", (ProductsModule, App, Backbone, Marionette, $, _) -> class ProductsModule.Router extends Marionette.AppRouter appRoutes: "products" : "listGoods" API = listGoods: -&g

我正在尝试在“产品”模块中创建一个新的应用程序路由器,如下所示,使用木偶

@MyApp.module "ProductsModule", (ProductsModule, App, Backbone, Marionette, $, _) ->
 class ProductsModule.Router extends Marionette.AppRouter
   appRoutes:
    "products" : "listGoods"

 API =
  listGoods: ->
    console.log('list goods')

 App.addInitializer ->
  console.log('init app router')
  new ProductsModule.Router
    controller: API
更高级别的应用程序代码如下

@MyApp = do (Backbone, Marionette) ->

 App = new Marionette.Application

 App.addRegions
  headerRegion: "#header-region"
  mainRegion: "#main-region"
  footerRegion: "#footer-region"

 App.on "initialize:after", (options) ->
  if Backbone.history
    Backbone.history.start
      root: '/admin/'

 App
但是,在尝试运行之后,appRouter for Products模块没有运行,即console.log没有向控制台打印任何内容

我是不是遗漏了什么

更新: 添加更多代码以显示应用程序的启动位置

<!DOCTYPE html>
<html>
<head>
  <title>Admin</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "admin" %>
  <%= csrf_meta_tags %>
</head>
<body>
  <div id="wrap">
    <div id="header-region"></div>
    <div id="main-region" class="container">

      <a href="#products">sss</a>
    </div>
  </div>
  <div id="footer-region"></div>

  //STARTING APP HERE
  <%= javascript_tag do %>
    $(function() {
      MyApp.start();
    });
  <% end %>

</body>
</html>

管理
“全部”%>
//在此处启动应用程序
$(函数(){
MyApp.start();
});
移动

console.log('init app router')
  new ProductsModule.Router
    controller: API

移动


什么都不稳定?启动应用程序了吗?是的,主干.history.start()启动成功(创建了控制台日志)。只是“ProductsModule.Router”没有启动不,我是说你是通过
App.start()
启动应用程序的吗?顺便说一句,应用程序应该是小写的是的,我做了。让我更新一下OP@pfried我已经更新了OP以显示我在哪里启动了该应用程序。需要注意的一点是,只有在我调用/admin时才会触发此布局。我是否需要在路由器中的某个位置定义根“/admin/”,以便路由可以与/admin/product一起工作?
App.on("initialize:after", function(){/*place code here*/})
if Backbone.history
    Backbone.history.start
      root: '/admin/'
App.on("start", function(){/*place code here*/})