Facebook любит добавлять #_=_
в конец обратного URL-адреса OAuth, который мы ему даем. Хотя мы не используем навигацию на основе hash, это выглядит раздражающе, и я хотел бы избавиться от него.Удалить Facebook OAuth hash with Angular JS
location.hash = '';
вызывает бесконечный цикл в $watch
(это также происходит с $window.location.hash = '';
). Угловой способ $location.hash('');
ничего не меняет. $location.path('');
дает нам часть пути туда, в результате чего добавляется /#/
, прилагаемый к нашему URL-адресу.
Я также играл с $locationProvider.html5Mode
и получил только ошибки. (Error: [$injector:unpr] Unknown provider: $locationProviderProvider <- $locationProvider
), хотя это может быть моей собственной ошибкой.
Как я могу удалить хеш OAuth без ошибок?
Угловая ошибка о 'Unknown provider' может быть вызвана тем, что у вас не установлено ngRoute, которое распалось на собственный файл пару версий назад. –
Где в вашем коде помещается 'set_ $ locationProvider.html5Mode()' setter? –
$ location.hash (''), похоже, успешно удаляет хэш для меня. Вы называете это из-за угла? Если это так, вы должны вызвать $ scope. $ Apply, чтобы это вступило в силу. – Sasha