2015-07-21 2 views
1

В моем приложении AngularJS я внедрил html-кнопку с функцией «вернуться». Если история пуста (потому что пользователь не изменил путь с момента загрузки страницы), я хочу скрыть/отключить его.AngularJS: отключить кнопку html, если история пуста

Есть ли способ обнаружить, что история пуста с угловым?

+0

Вы читали об услуге [$ location] (https://docs.angularjs.org/guide/$location) службы Angularjs? – SayusiAndo

+0

Однако этот вопрос является возможным [дубликат] (http://stackoverflow.com/questions/3588315/how-to-check-if-the-user-can-go-back-in-browser-history-or- не). – SayusiAndo

+0

По-моему, это не так, поскольку вопрос заключается в том, как это сделать «угловым способом». – tmuecksch

ответ

5

Вы можете даже проверить $window сервис угловых js. Он полностью такой же, как оконный объект javascript.

Объект истории содержит URL-адреса, посещенные пользователем (в окне браузера ).

Объект истории является частью объекта window и имеет доступ к через свойство window.history.

Если вы хотите, чтобы увидеть ли history пуста или не следует использовать

if($window.history.length <= 1) { 
    //Internet Explorer and Opera start at 0, while Firefox, Chrome, and Safari start at 1 
    console.log("empty"); 
} 

Пожалуйста, убедитесь, что вы вводили $window службу в контроллере. Некоторые функции объекта истории: here. Вы можете написать больше строк, чтобы сначала обнаружить браузер, а затем применить свои условия угловым способом. Пожалуйста, проверьте это post

+0

Спасибо за ваш ответ. Вы уверены, что проверка history.length === 0 достаточна для того, чтобы убедиться, что ранее не было посещенных URL-адресов в этом окне? Просто спрашиваю, потому что я думал, что прочитал где-то, этого будет недостаточно. EDIT: Я уже нашел ответ в статье MDN, с которой вы связались. «Вы можете определить количество страниц в стеке истории, посмотрев на значение свойства длины« – tmuecksch

+0

@tmuecksch, пожалуйста, взгляните на мой отредактированный ответ. Вы можете судить историю, используя '<= 1'. Это будет полезно для всех основных браузеров, кроме IE или OPERA. – Vineet

+0

Vineet: Полезно знать. Благодарю. – tmuecksch

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