javascript - 从 cookie 设置 Angular 默认路由

标签 javascript angularjs cookies

我的应用程序应该有不同的默认路由,具体取决于 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/

相关文章:

javascript - Prop 值未在子组件 Vue.js 中更新

javascript - ng-click 中方法的 if 语句

c# - 持久性 Cookie 在浏览器关闭时被删除 - Identity 2.0

javascript - 在一定时间后为变量赋值

javascript - 使用jquery根据本地存储数据动态创建HTML分区

javascript - 无法从联合类型访问参数 (TypeScript)

javascript - 捕获 flask 应用程序中的所有路径

javascript - 使用 $scope.$watch 还需要 $scope.$apply?

asp.net - 当网站位于服务于 TLS 证书的负载均衡器后面时,将 cookie 标记为表单例份验证中的 "secure"

javascript - 使用 cookie 的最佳实践