В настоящее время создается приложение, работающее на мобильных телефонах, которое не связано с рассматриваемой проблемой, но через определенное событие приложение попадает в состояние, либо онлайн, либо в автономном режиме (интернет доступен по телефону или нет)
автономное приложение очень ограничено, доступно только несколько экранов)
теперь остановите меня, если вы поймаете меня на том, что я делаю что-то глупое или что-то, что я мог бы сделать намного лучше, но моей первой мыслью было иметь маршрутизатординамический набор маршрутов,
так же, как вы можете определить свойство динамического URL для коллекции.
, поэтому вместо этого:
var router = Backbone.Router.extend({
routes: {
'' : 'homeAction',
'categories' : 'categoriesAction',
...
},
homeAction: function(){ },
categoriesAction: function(){ }
});
я думал об этом:
var router = Backbone.Router.extend({
initialize: function(){
this.on('app:togglestate', this.toggleRoutes, this);
},
toggleRoutes: function () {
var router = this;
if(App.onlineModus)
router.routes = { /* hash with online routes here */ };
else
router.routes = { /* hash with offline routes here */ };
},
routes: {
'' : 'homeAction',
'categories' : 'categoriesAction',
...
},
homeAction: function(){ },
categoriesAction: function(){ }
});
, хотя это, по-видимому, нарушает работу всего приложения, так как Backbone.history.start();
выдает ошибку, не может вызвать функцию запуска из неопределенного состояния.заставляет меня поверить, что объект маршрутов каким-то образом используется при инициализации и не может быть изменен на лету.
Возможно, я задумываюсь далеко?Должен ли я достичь этого каким-то другим способом?
у меня была еще одна идея:
- с маршрутами, точно такими же, как url, где аргумент route - это функция, возвращающая хеш, который не сделал 'не работает или
- , и теперь я думаю, что все по-другому, что-то вроде тестирования, если приложение находится в режиме онлайн или в автономном режиме в действии каждого маршрута.хотя это кажется слишком много, я, вероятно, должен был бы передать их все через одно Действие, которое переходит к действительному действию, если маршрут доступен в автономном режиме?но у меня не было бы ясного представления о том, как начать с таким действием реле, не написав слишком много шаблонного кода ...