2016-03-16 2 views
1

Я довольно новичок на Магистраль, и это сводит меня с ума: Я использую магистраль и марионетку. Вот некоторые примеры кода для начала:История магистратуры не начинается

var Backbone = require('backbone'), 
    Marionette = require('backbone.marionette'), 
    FastClick = require('fastclick'); 

var MainModule  = require('./modules/main'), 
    HomeModule  = require('./modules/home'); 

var app = new Marionette.Application(); 

app.vent.on('ready', function(e) { 
    Backbone.history.start({ 
     pushState: true, // Use HTML5 history if available 
     hashChange: false, // or refresh pages if it isnt supported natively 
     root: '/', 
    }) 
}); 

и в моем /module/home/index.js:

module.exports = function HomeModule(Module, App, Backbone, Marionette, $, _) { 

// Register Sub modules 
App.module('Home', LayoutModule); 
App.module('Home', WallModule); 

Module.Router = Marionette.AppRouter.extend({ 
    appRoutes: { 
     '/': 'home', 
     'social-wall': 'socialwall' 
    } 
}); 

var controller = { 
    home: function() { 
     App.mainRegion.show(new Module.Layout()); 
    }, 

    socialwall: function() { 
     controller.home(); 
     App.mainRegion.currentView.scrollToSocialWall(); 
    } 
}; 

App.addInitializer(function() { 
    new Module.Router({ controller: controller }); 
}); 
}; 

Проблема заключается в том, что Backbone.history.start ничего не сработает. Если я правильно понимаю код, history.start() должен найти маршрут «/» в HomeModule и вызвать связанную функцию ... Я ошибаюсь? Почему это не работает ?????

Заранее благодарю

+0

К коду, к которым вы обращаетесь? –

+1

Кто запускает 'app.vent.on ('ready'' thingy ..? –

+0

Событие' ready 'запускается приложением app.start() (марионетка), позже в main.js. И я доступ к localhost /. Может быть, это скорее ошибка развертывания. Backbone кажется включенным дважды моим скриптом gulp-browsify. Я полностью потерял ..... –

ответ

0

нашел! , как я сказал в комментарии, это была ошибка развертывания. Ошибка была плохим файлом package.json при установке npm. Совет для разработчиков: когда вы создаете пакет npm для установки и развертывания проекта Marionette, обязательно включите Backbone в первую очередь и с явной версией ... в том числе только Marionette заставит npm устанавливать Backbone дважды (вкл. корень проекта и модули марионетки), и это является источником больших проблем ...

Смежные вопросы