複雑なルーティングを持つRailsアプリがあります。Angular アプリケーションが /quizzes/1 などのディープ URL に存在する
私はルート構成に $window を挿入し、$window.location.pathName をスニッフィングすることで、Angular がこれを行うことを望んでいました。この段階でアプリケーションが「Unknown provider: $window from myApp」をスローするため、これは可能ではないようです。
Angular でこれを処理するベスト プラクティスの方法はありますか? これを行う理由は、アプリが深いディレクトリにあるときに HTML5 モードを使用するためです。
これが私が望んでいたものの例ですhttp://jsfiddle.net/UwhWN/。それが唯一のオプションである場合、プログラムのこの時点で window.location.pathname を使用できることを認識しています。
HTML:
<div ng-app="myApp"></div>
JS:
var app = angular.module('myApp', [])
app.config([
'$window', '$routeProvider', '$locationProvider',
function($window, $routeProvider, $locationProvider) {
var path = $window.location.pathname
// Coming Soon
// $locationProvider.html5Mode(true)
$routeProvider
.when(path + '/start', {
controller: 'splashScreenController',
templateUrl: 'partials/splash-screen.html'
})
.when(path + '/question/:id', {
controller: 'questionController',
templateUrl: 'partials/question-loader.html'
})
.otherwise({
redirectTo: path + '/start'
})
}])