2015-12-16 2 views
1

Я использую AngularJS для создания приложения одиночной страницы (SPA), и мне интересно, как лучше всего управлять с помощью кнопки «Назад» на мобильных устройствах.Использование кнопки обратной связи Мобильное приложение для одной страницы AngularJS

Я создал свое приложение без просмотров. Одна js-форма, одна html-страница и никакие частичные. Информация отображается с помощью ng-show и контроллера, который помогает скрыть теги <div> в соответствии с присвоенными им номерами вкладок.

Мне нужно, чтобы приложение было НЕ ЗАКРЫТО, когда нажата кнопка «Назад». Но так как я не передаю какие-либо параметры URL (потому что URL-адрес никогда не изменяется), есть ли действительно хороший способ предоставить функциональность кнопке «Назад» на мобильном устройстве?

Вот пример кода, но я также включил plunk, чтобы попытаться помочь мне в разъяснении моей потребности.

<div> 
<a href ng-click="toggle = !toggle">=</a> 
<ul ng-show="toggle"> 
    <li><a id="Home" ng-click="navi.selectTab(1); toggle = false">Home</a></li> 
    <li><a id="About" ng-click="navi.selectTab(2); toggle = false">About</a></li> 
    <li><a id="Contact" ng-click="navi.selectTab(3); toggle = false">Contact</a></li>  
</ul> 

<div ng-show="navi.isSelected(1)"> 

или <div ng-show="navi.isSelected(2)"> или

<div ng-show="navi.isSelected(3)"> 

ответ

1

Если вы просто хотите предотвратить кнопку назад покинуть SPA сразу же, вы можете использовать window.onbeforeunload(), чтобы предупредить пользователя о том, что кнопка «Назад» выйдет из приложения.

window.onbeforeunload = function() { 
    return "Are you sure you want to leave?" 
} 

В противном случае, чтобы получить ваше приложение, чтобы быть с сохранением состояния и позволяет пользователю использовать назад/вперед кнопку, вы хотите использовать UI-маршрутизатор или угловатые-маршруты.

+0

Ok. Я могу использовать это как вариант. Я пытался избежать использования ui-router. –

+0

Я немного испортил это и даже расширил свое чтение на нем, чтобы лучше понять его, но эта функция, похоже, не работает для меня. @ Паскаль-зима –