2016-10-23 2 views
1


google.com.au에 콘텐츠 스크립트를 삽입하는 크롬 확장 프로그램을 작업 중입니다. 그런 다음 콘텐츠 스크립트는 작은 인터페이스가있는 각도 ui 라우터 기반 앱을로드합니다. $ URL없이 URL을 사용하고 있습니다. 그래서 템플릿 URL과 컨트롤러 만. 문제는 내가 내 작은 응용 프로그램의 홈 페이지로 이동 $state.go('home')을 사용하면 내부에서 $state.go에서 위치 또는 URL을 변경 예입니다.
(2) :- https://www.google.com.au/#/q=hello
(1) :- https://www.google.com.au/#q=hello
은 (Q/후 추가가)

두 번째 URL을 google.com.au 날 다시 재 무효입니다.
또한 URL에 #이없는 링크 된 검색 결과 페이지에이 앱을 삽입했을 때 동일한 앱이 올바르게 작동했습니다.

또한 의 매개 변수를 사용하여 $state.go$state.transitionTo과 같은 변형을 시도했습니다. 하지만 여전히 위와 같은 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로 링크-재 작성
이 도움이
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의 의도 된 동작이라고 생각합니다. 이 자바 스크립트 (window.location.href = 'XXX') 또는 $ location을 사용하여 원하는대로 정확하게 hashbang을 설정해야 할 수도 있습니다.

+0

이 동작을 끌 수 있습니까? –