4

角度ルーティングをセットアップしようとして、いくつかの問題に直面しました。私は手動でブートストラップされたアプリケーションを持っています (サイト全体で既に html5 ナビゲーションがあり、angular を特定のページでのみ動作させたいので、この機能が必要です - 正常に動作します)。しかし、コードを実行すると、いくつかの問題が発生しました。

  • 提供されている場合.otherwise、コントローラーを呼び出す無限ループが発生し、Chrome で Range エラーが発生して終了します
  • そして、私が呼び出しても、ハッシュバージョンから非ハッシュへのURLリダイレクトを常に取得しました$locationProvider.html5Mode(false);

statechange イベントに 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')
}
4

1 に答える 1

2

@blesh @Flekありがとう。

責任があるのは history.js でした。$locationProvider.html5Mode角度ルーティングを使用しようとすると、に設定するオプションがありません false。また、デフォルト ルートが提供された場合の無限リダイレクトなどのバグも発生します。

于 2012-11-14T14:28:31.717 に答える