angular.js IE路由问题

时间:2013-02-07 14:57:28

标签: angularjs

我的应用程序似乎在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 /#/猫/

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

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

我已经完成了这里的步骤

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

并且包括

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

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

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

1 个答案:

答案 0 :(得分:0)

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

喜欢这样..

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

[more info hereAnd here]