2013-04-05 2 views
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 

Чем выше уровень App код выглядит следующим образом

@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 не распечатывал ничего на консоли.

Я что-то пропустил?

UPDATE: Добавление большего количества кода, чтобы показать, где приложение было начато

<!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> 
+0

ничего instatiates? вы начали приложение? – pfried

+0

Да Backbone.history.start() действительно начал успешно (сделал журнал консоли). Просто, что «ProductModule.Router» не запустился – Zhen

+0

Нет, я имею в виду, что вы начали приложение с помощью 'App.start()'? btw-приложение должно быть в нижнем регистре – pfried

ответ

0

Move

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

в

App.on("initialize:after", function(){/*place code here*/}) 

Move

if Backbone.history 
    Backbone.history.start 
     root: '/admin/' 

в

App.on("start", function(){/*place code here*/}) 
Смежные вопросы