如何避免角度应用程序对特定URL哈希更改做出反应

时间:2014-12-04 13:05:14

标签: angularjs angular-ui-router

我目前正在重写旧版本和应用程序,其中HTML主要在angularJS中生成服务器端。

只有页面的某些部分不是由AngularJS提供支持,而一些客户端逻辑仍然是纯JavaScript。对于网址路由,我们使用UI-router 其中一种情况是在所有应用程序中使用的选项卡。它的当前实现包含以下所有重写位置哈希:myapp_url?foo=bar#1, myapp_url?foo=bar#2等。 注意 - 哈希部分没有斜杠“/”。

在我的情况下,默认情况下,其中一个选项卡中的角度块不可见。因此,当用户单击页面上的选项卡时,URL会更改为像myapp_url?foo=bar#TAB_id一样的smth,它不被UI路由器所理解,并且它将应用程序(不是整个页面而是角度驱动的块)部分重定向到404状态

Angular UI路由器依赖于像myapp_url?foo=bar#/my_route这样的Url掩码 - 在散列部分中使用斜杠符号 - 因此可以是触发器。  我问如何/在哪里可以添加这种检查 - 角度部分是否采取行动或跳过网址更改?

1 个答案:

答案 0 :(得分:0)

我已经通过创建一个带有空网址的状态解决了这个问题,它不会通过angularJS app以外的javascript干扰网址哈希更改。

  $stateProvider
        .state("base.emptyState", {
          url: "",
          template: '';
        })