Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $state.go将url更改为/#q=hello to/#/q=hello_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript $state.go将url更改为/#q=hello to/#/q=hello

Javascript $state.go将url更改为/#q=hello to/#/q=hello,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我正在开发一个chrome扩展,它在google.com.au中注入了一些内容脚本。然后,该内容脚本加载一个具有小界面的基于角度ui路由器的应用程序。我正在使用没有url的$state。所以只有templateUrl和控制器。问题是,当我使用$state.go('home')进入我的小应用程序主页时,中的$state.go会从内部更改位置或url,例如 (1):-https://www.google.com.au/#q=hello 到 (2):-https://www.google.com.au


我正在开发一个chrome扩展,它在google.com.au中注入了一些内容脚本。然后,该内容脚本加载一个具有小界面的基于角度ui路由器的应用程序。我正在使用没有url的$state。所以只有templateUrl和控制器。问题是,当我使用
$state.go('home')
进入我的小应用程序主页时,中的
$state.go
会从内部更改位置或url,例如
(1):-https://www.google.com.au/#q=hello


(2):-https://www.google.com.au/#/q=hello
(有一个额外的/在q之后)

第二个url无效,它将我重定向回google.com.au。
另外,值得一提的是,当我将同一个应用程序注入链接的搜索结果页面时,该页面的url中没有任何
,该应用程序运行良好

此外,我还尝试了一些变体,如
$state.go
$state.transitiono
,其中第三个参数为
{location:false..}
。但它仍然会像上面那样更改URL。

我陷入困境,无法继续进行逻辑推理。
以下是问题的屏幕广播。

我们将非常感谢您的帮助。
提前谢谢

更新
下面是一个包含上述问题的chrome扩展示例。
请将此作为未打包的扩展加载,并尝试转到

在加载扩展之前和之后查看我上面提到的问题


希望这能帮助您的专家解决这个问题。

我认为这是ui路由器的预期行为。您可能需要使用本机javascript(window.location.href='XXX')或$location来完全按照您的需要设置hashbang。

我认为这是ui路由器的预期行为。您可能需要使用本机javascript(window.location.href='XXX')或$location来完全按照您的需要设置hashbang。

好的,经过大量的研究和尝试。 下面是更改状态时不会更改url的代码。 我不得不使用HTML5模式。更多详细信息和用法可在此处找到。
$location#html链接重写
stackoverflow post


希望这有帮助,有人在那里

好吧,经过这么多的研究和尝试。 下面是更改状态时不会更改url的代码。 我不得不使用HTML5模式。更多详细信息和用法可在此处找到。
$location#html链接重写
stackoverflow post


希望这有帮助,有人在那里

我们可以关闭这个预期的行为吗?我们可以关闭这个预期的行为吗?
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("!")
  }])