3

我的应用程序似乎在 chrome 和 FF 中运行良好,但在 IE 中存在路由问题。

如果我声明我的应用程序如下

var app = angular.module('category', ['ngSanitize', 'ui']);

完全没有问题

但是,如果我将其更改为包含这样的路由定义

var app = angular.module('category', ['ngSanitize', 'ui']).
  config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
  $routeProvider.
  when('/cat/', {templateUrl: '/category.inc.php',   controller: 'CategoryProductsCtrl'}).
  when('/cat/:colour_title/', {templateUrl: '/category.inc.php', controller: 'CategoryProductsCtrl'});
}]);

IE在地址栏中的猫之前添加了一个#,而不是像这样显示

example.com/cat/

它显示

example.com/#/cat/

在 IE 控制台中,我收到以下错误

错误:达到 10 次 $digest() 迭代。中止!观察者在最后 5 次迭代中触发: [["fn: function(){var a=d.url(),b=.......

我已经完成了这里的步骤

http://docs.angularjs.org/guide/ie

我包括

JSON2,angular-ui-ieshiv.min.js html5shim.js(使其在 IE7 中工作)

并且没有在我的应用程序中使用 ant 自定义标签等。任何帮助,将不胜感激。尽管我正在从服务器中提取数据,但我的应用实际上处于与此相同的状态

http://docs.angularjs.org/tutorial/step_07

4

1 回答 1

0

您可以在路由器配置中将 HTML5 模式设置为 true,并从 url 中删除“#”,例如:url: 'http://your_site.com/page/home'

像这样。。

app.config: $locationProvider.html5Mode = true;
index.html: <base href="root_directory_here" />

[更多信息在这里在这里]

于 2016-04-21T23:19:02.943 回答