我的应用程序应该有不同的默认路由,具体取决于 cookie 中设置的值。但是在我的路由器配置中 $cookies
没有定义 - 在应用程序引导的这个阶段似乎只有 $cookieProvider
被定义(并且类似地 $cookieStore
也不可用)。我如何从这里获取我的服务稍后可以访问的实际 $cookies
对象。
angular.module('jnr').config(['$routeProvider', '$locationProvider', '$cookiesProvider', function($routeProvider, $locationProvider, $cookiesProvider) {
$locationProvider.html5Mode(true).hashPrefix('!');
$routeProvider.when('/tunes', {
templateUrl: '/views/list-tunes.html'
}).when('/tunes/:instrument', {
templateUrl: '/views/list-tunes.html'
}).otherwise({
redirectTo: '/tunes/' + ([get instrument from the cookie here] || 'clarinet')
});
}]);
};
最佳答案
看来你不能在配置 block 中使用。
请看这里:Why am I unable to inject angular-cookies?这里:Why can't I get a $location injected into in my config()?
因为:
配置 block - 在提供程序注册和配置阶段执行。只有提供者和常量可以注入(inject)到配置 block 中。这是为了防止服务在完全配置之前意外实例化
$cookies 是一个服务,你不能在配置 block 中注入(inject)服务。
你必须在运行 block 中注入(inject)它。
或者像这样使用 jquery cookie API:
$.cookie('myCookie')
关于javascript - 从 cookie 设置 Angular 默认路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18959816/