使用$ routeProvider时无限重定向

时间:2012-10-16 09:59:04

标签: angularjs

我在尝试设置角度路由时遇到了一些问题。 我有一个手工启动的应用程序(我需要这个功能,因为我已经在整个网站上都有html5导航,并希望角度只在某个页面上工作 - 它工作正常)。 但是当我运行我的代码时,我遇到了一些问题:

  • 如果.otherwise提供,我无限循环调用我的控制器并在Chrome中死于Range错误
  • 我总是将url重定向从哈希版本转换为非哈希版本,即使我调用$locationProvider.html5Mode(false);

猜测问题可能是由于我已经在使用history.js和事件处理程序进行状态转换事件这一事实,但是现在我没有任何线索。 需要你的帮助才能得到答案。

感谢您的时间。

和代码。

HTML

<script>
    if (typeof angular === 'undefined')
    {
        Modernizr.load({
            load: [
                '/static/css/angular.css',
                '/static/js/libs/angular/angular.min.js',
                '/static/js/files/angular/app.js',
                '/static/js/files/angular/controllers.js',
                '/static/js/files/angular/filters.js',
                '/static/js/files/angular/services.js',
                '/static/js/libs/angular/angular-resource.min.js',
            ],
            complete: function () {
                angular.bootstrap(document.getElementById('manager'), ['manager']);
            }
        });
    } else {
        angular.element(document).ready(function() {
            angular.bootstrap(document.getElementById('manager'), ['manager']);
        });
    }
</script>
    

app.js

/* App Module */

var FM = angular.module('manager', ['managerFilters'])
    .config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
        $routeProvider
            .when('/home', { controller: FilesListCtrl, templateUrl: '/static/partials/1.html' })
            .otherwise({ redirectTo: '/home' });
        }]);

controllers.js

function FilesListCtrl($scope, $filter, $routeParams) {
    app.log('FilesListCtrl')
}

1 个答案:

答案 0 :(得分:2)

@blesh @Flek谢谢。

责备是历史。当您尝试使用角度路由时,您将无法设置 $locationProvider.html5Modefalse。而其他错误就像无限重定向一样,提供默认路由。