angular ui routing - 避免hashbang模式。 IE9

时间:2016-04-28 12:21:19

标签: angularjs internet-explorer angular-ui-router angular-routing

我正在尝试在IE9中使用html5mode,angular ui routing

<ul>
  <% for(var item in printIt.widget){%> 
    <li><%= printIt.widget[item].data%></li>
  <% } %>
</ul>

而不是index / path / myid我仍然得到索引/#/ index / myid然后带我索引,因为浏览器忽略了哈希标记及其后的所有内容。 (适用于firefox,chrome,edge,IE11-10(支持html5mode / api历史的浏览器))

1 个答案:

答案 0 :(得分:-1)

除了使用UI路由器之外,这是我在我的应用程序中的内容:

$ locationProvider是Angular核心的一部分,用于配置应用程序的路径。默认情况下,Angular使用#!作为路径前缀,称为Hashbang模式。这是一种表示JavaScript会触发页面加载的约定。

我将以下代码添加到app / scripts / app.js文件中的配置功能

将以下代码添加到配置功能:

    (function() {
      function config($stateProvider, $locationProvider) {
        $locationProvider
            .html5Mode({
              enabled: true,
              requireBase: false
            });
      }

通过将html5Mode方法的enabled属性设置为true,禁用hashbang URL;也就是说,用户将看到没有hashbang的干净URL。将requireBase属性设置为false与hashbang问题无关,但这是避免常见$ location错误的一种方法。