【问题标题】:Using Cookie value from one ng-app in another ng-app in AngularJS在 AngularJS 的另一个 ng-app 中使用来自一个 ng-app 的 Cookie 值
【发布时间】:2016-09-07 14:00:57
【问题描述】:

我知道在一个项目中拥有多个 ng-apps 并不是一个好习惯,但我的项目被划分为通常彼此不相关的部分,而且我或多或少没有其他选择。

我的问题是ng-cookie 在两个单独的 Javascript 文件中的持久性。假设我有链接到controller1.jsdashboard1.html 和链接到controller2.jsdashboard2.html

现在,我想在控制器 2 中访问控制器 1 的 cookie 值。当我尝试这样做时,结果显示未定义,这意味着我无法访问另一个 Javascript 文件设置的 cookie 值。

请告诉我如何解决这个问题。

注意:Javascript 文件为每个应用程序定义了各自的 ng-app 和控制器。

这是控制器和ng-app 一个模块的一部分。

var app = angular.module('mainpageapp', ['ngRoute','ngCookies']);
    app.controller('ctrlmainpage', ['$scope', '$timeout','$http', '$route', '$routeParams', '$location', '$rootScope', '$cookies', function ($scope, $timeout, $http, $route, $routeParams, $location, $rootScope, $cookies) {
        console.log("Csadad");

        $cookies.myFavorite = 'TestCookie';
        var favoriteCookie = $cookies.myFavorite;
        console.log("Cookie" + favoriteCookie);

现在在这个 ng-app 的控制器中,我正在设置一个 cookie,它可以正常工作,并且我确实在控制台上得到了预期的响应。这是在文件 controller1.js 中

现在我正在尝试访问由不同 ng-app 绑定在一起的 controller2.js 中的相同 cookie。

var app = angular.module('myApp', ['ngRoute', 'smart-table', 'ngCookies']);
var id = 'hasdh';
app.controller('dashmerctrl', ['$scope', '$timeout','$http', '$route', '$routeParams', '$location', '$rootScope', '$cookies', function ($scope, $timeout, $http, $route, $routeParams, $location, $rootScope, $cookies)
{
    var favoriteCookie1 = $cookies.myFavorite;
    console.log("Cookie1" + favoriteCookie1); 

她我得到未定义的输出。

我想访问这个文件中的同一个 cookie。

【问题讨论】:

  • 如果您将 {path: '/'} 作为选项传递,它是否有效?
  • 你能提供你的代码吗? ng-cookie 指令设置基于会话的 cookie。您应该可以正常访问它。另外,你有没有想过只在你的 js 中设置 document.cookie?
  • @yts 我不明白。通过路径/在哪里?
  • @ChristianHill 我会在 2 分钟内更新我的问题。
  • @OneNote 如果你看这里docs.angularjs.org/api/ngCookies/service/$cookies#put 你会看到第三个参数接受一个对象。传入 {path: '/'} 作为该对象,看看是否有效。

标签: javascript angularjs cookies angular-cookies


【解决方案1】:

如果您希望跨选项卡或域共享数据,您可以尝试 zendesk 的“跨存储”,只需使用 AngularJS 实现它,它就像一个魅力。

它利用 window.postMessage() 技术来实现此行为。

链接:zendesk/cross-storage

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2014-01-21
    相关资源
    最近更新 更多