0

以下に示すように、マリオネットを使用して「製品」モジュール内に新しいアプリルーターを作成しようとしています

@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 は実行されませんでした。つまり、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>
4

1 に答える 1