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