Для любого заданного маршрута или состояния в приложении AngularJS я бы хотел использовать специальный конкретный или настольный шаблон для мобильных устройств в зависимости от устройства пользователя. Я также хочу, чтобы пользователь мог выбрать версию (настольную или мобильную), независимо от того, на каком устройстве они находятся.AngularJS: Используйте различные шаблоны для настольных компьютеров и мобильных устройств?
В частности, я хочу отдельный шаблон, потому что во многих случаях отдельный шаблон намного проще, чем при использовании адаптивного дизайна.
Есть ли простой способ сделать это?
Вот что я хотел бы сделать, но я не знаю, как сделать переменную isMobile доступной для функции templateUrl с помощью углового ui-router. Любая помощь будет оценена.
angular
.module('app.items', [])
.config(config);
function config($stateProvider) {
//$window service not available in config block, so how can I set this variable?
var isMobile = $window.sessionStorage.getItem('isMobile');
$stateProvider
.state('itemsList', {
url: '/items',
templateUrl: function($stateParams) {
if (isMobile) { //How do I get this information (variable) in here?
return 'app/items/list.mobile.html';
}
else {
return 'app/items/list.desktop.html'
}
},
controller: 'ItemsListController'
});
}
'isMobile' доступен внутри функции' templateUrl'. Вы пытались запустить свой код? – dfsq
Я знаю, что он успешно ссылается на var isMobile сверху, но как установить это из «глобального» местоположения, такого как $ window.sessionStorage? –