app.jsмарионеток AppRouter не работает с Browserify
module.exports = function() {
if (!window.__medicineManager) {
var Backbone = require('backbone');
var Marionette = require('backbone.marionette');
var MedicineManager = new Marionette.Application();
MedicineManager.addRegions({
mainRegion: "#main-region"
});
MedicineManager.navigate = function (route, options) {
options || (options = {});
Backbone.history.navigate(route, options);
};
MedicineManager.getCurrentRoute = function() {
return Backbone.history.fragment;
};
MedicineManager.on("start", function() {
if (Backbone.history) {
Backbone.history.start();
}
});
MedicineManager.start();
window.__medicineManager = MedicineManager;
}
return window.__medicineManager;
}();
medicine_app.js
var MedicineManager = require('app');
var Backbone = require('backbone');
var Marionette = require('backbone.marionette');
MedicineManager.module("MedicineApp", function (MedicineApp) {
MedicineApp.Router = Marionette.AppRouter.extend({
appRoutes: {
"": "showSearchOption",
"show/*id": "showMedicine"
}
});
var API = {
showSearchOption: function() {
console.log('show search option');
},
showMedicine: function (id) {
console.log('show ' + id);
}
};
MedicineManager.addInitializer(function() {
console.log('MedicineApp.Router initialised');
new MedicineApp.Router({
controller: API
});
});
});
Я знаю, модуль марионеток устарел, поэтому не обращайте внимания, что, как я до сих пор тестирование Browserify.
Проблема в том, что маршрут "": "showSearchOption"
не запускается.
Я высылаю в Marionette.AppRouter as Backbone.Router , и я не могу понять, как его решить?
Edit:
То, что я считаю, что экземпляр Backbone, что марионетка использует внутренне отличается от того, что я получаю, когда я require('backbone')
.
Любые предложения по этой проблеме?
Вы уверены, что вызывается Backbone.history.start()? –
Что вы подразумеваете под «модулем марионеток, устаревшим»? – Kevin