2016-10-23 4 views
1


Я работаю над расширением chrome, которое вводит некоторый скрипт контента на google.com.au. Затем этот скрипт контента загружает приложение с угловым ui-маршрутизатором, имеющее небольшой интерфейс. Я использую $ state без url. Так что только templateUrl и контроллер. Проблема в том, что я использую $state.go('home'), чтобы перейти на домашнюю страницу моего маленького приложения, $state.go во внутреннем изменении местоположения или URL-адреса, например.
(1) :- https://www.google.com.au/#q=hello
в
(2) :- https://www.google.com.au/#/q=hello (есть дополнительный/после д)

второй URL является недействительным один, который перенаправляет меня обратно в Google.com.au.
Кроме того, стоит отметить, что - то же приложение отлично работало, когда я ввел его на страницу с результатами связанных ссылок, чей URL не содержал #.

Кроме того, я пробовал варианты, такие как $state.go и $state.transitionTo с третьим параметром {location:false ....}. но он все еще меняет URL-адреса, как указано выше.

Я застреваю и не в состоянии идти вперед с логикой впереди.
вот скринкаст проблемы.
http://screencast.com/t/ZrBtlkU3z
Любая помощь будет высоко оценена.
Спасибо заранее.

Обновление
Ниже приведен пример расширения хром, содержащий указанную проблему. https://[email protected]/Vikasg7/example-app.git
Пожалуйста, загрузите это, как распакованное расширение и попытаться перейти к
https://www.google.com.au/#q=hello
до и после загрузки расширения, чтобы увидеть проблему, которую я уже упоминал выше.

Надеюсь, это поможет специалистам, разрешающим проблему.

ответ

0

Хорошо, после стольких исследований и хитов и испытаний. вот код, который не изменит URL при изменении состояний. Мне пришлось использовать html5Mode. Более подробную информацию и информацию можно найти здесь.
https://docs.angularjs.org/guide/ $ расположение # HTML-ссылка переписывания
StackOverflow размещать
AngularJS 1.1.5 - automatically adding hash tag to URLs

angular 
    .module("app", ["ui.router", "app.services", "app.directives", "app.controllers"]) 
    .config(["$stateProvider", "$locationProvider", function ($stateProvider, $locationProvider) { 
    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false, 
     rewriteLinks: true 
    }).hashPrefix("!") 
    }]) 

надеюсь, что это помогает, кто-то там!

0

Я думаю, что это предполагаемое поведение ui-router. Возможно, вам придется использовать собственный javascript для этого (window.location.href = 'XXX') или, может быть, $ location, чтобы установить hashbang точно так, как вы хотите.

+0

Можем ли мы отключить это намерение? –

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