4

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

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

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

谢谢你的时间。

和代码。

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>

应用程序.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' });
        }]);

控制器.js

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

1 回答 1

2

@blesh @Flek 谢谢。

It was history.js to blame. When you try to use angular routing with it you'll have no option to set $locationProvider.html5Mode to false. And other bugs occur like infinite redirection with default route provided.

于 2012-11-14T14:28:31.717 回答