我有一个 Rails 应用程序,它有一些复杂的路由。我的 Angular 应用程序存在于 /quizzes/1 等深层 URL 中
我希望通过 Angular 将 $window 注入到我的路由配置中,然后嗅探 $window.location.pathName 来做到这一点。这似乎是不可能的,因为应用程序在这个阶段抛出了一个“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'
})
}])