我有一个 Rails 应用程序,其中有一些复杂的路由。我的 Angular 应用程序存在于深层 URL 中,例如 /quizzes/1
我希望通过将 $window 注入到我的路由配置中,然后嗅探 $window.location.pathName 来做到这一点。这似乎不可能,因为应用程序在此阶段抛出“未知提供者:来自 myApp 的 $window”。
有没有最佳实践方法可以用 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'
})
}])