可以在两个angularjs应用程序之间共享数据吗?

可以在两个angularjs应用程序之间共享数据吗?,angularjs,Angularjs,我在同一页上有两个不同的应用程序 我可以通过服务(或任何其他方式)在这两个应用程序之间共享数据吗 或者这是不可能的 (我怀疑这是不可能的,尽管有规则的角度机制)-但我认为还是值得问一下 这可以使用window变量来完成,但我希望避免这样做 谢谢 我最终以以下方式解决了这个问题: angular.module('sharedService', []).factory('SharedService', function() { var SharedService; SharedServi

我在同一页上有两个不同的应用程序

我可以通过服务(或任何其他方式)在这两个应用程序之间共享数据吗

或者这是不可能的

(我怀疑这是不可能的,尽管有规则的角度机制)-但我认为还是值得问一下

这可以使用window变量来完成,但我希望避免这样做


谢谢

我最终以以下方式解决了这个问题:

angular.module('sharedService', []).factory('SharedService', function() {

  var SharedService;

  SharedService = (function() {

    function SharedService() {
      /* method code... */
    }

    SharedService.prototype.setData = function(name, data) {
      /* method code... */
    };
    return SharedService;

  })();

  if (typeof(window.angularSharedService) === 'undefined' || window.angularSharedService === null) {
    window.angularSharedService = new SharedService();
  }
  return window.angularSharedService;});
  /* now you can share the service data between two apps */
  angular.module("app1", ['sharedService'])
    /* module code */
  angular.module("app2", ['sharedService'])
    /* module code */

我不得不承认这个解决方案并不理想,但这是我为这个问题找到的最干净的解决方案

如果您有两个应用程序需要共享数据的场景。。那么你做错了什么。。当然有更好的方法来做你想做的事情。@ganaraj在不知道他的配置的情况下,你不能这么说。我同意@ganaraj的观点,因为它似乎存在某种设计问题,但是如果应用程序在同一个页面上,我猜你可以使用本地存储、cookies,甚至像塔夫绸一样在全球空间共享数据。“我不认为你可以使用服务,尽管我没有尝试过。”MikeRobinson我这样说的原因是这样的。如果他计划在这两个应用程序之间共享数据,那么他“知道”这两个应用程序的存在。这两个不同的应用程序不是由两个不同的方加载的。如果他确实了解它们,并且希望在它们之间共享数据,那么在设计方面就存在一些错误。我将在这里射击盲人,并假设他正在尝试使用两个应用程序,因为每个应用程序只能使用1个ng视图?这是最常见的场景。首先-我同意@ganaraj-我正在进行“黑客攻击”-但这是因为现有的dom结构迫使我有一个对话框,其中包含body元素正下方的angular应用程序。因为我在页面上已经有了几个其他的angular应用程序(这是一个大页面)——我不能用body元素上的一个angular应用程序来包装整个内容。实际上,我通过使用一个在window元素上定义单例的服务解决了这个问题,但我仍然想知道angular是否是为了在应用程序之间共享数据而构建的,如果你打开我的眼睛的话。这很简单,但我是瞎子。这太棒了!它允许跨多个应用程序真正重用一些服务,并构建一些逻辑层。非常感谢。(除了“窗口”的东西,在我的情况下不适用)。事实上,再想想,这不是我第一次阅读时所想的。我正在根据您在此处提出的概念重新编写一些内容,如果有什么有趣的地方,我会将其发回。@Rubinsh是否可以在不同页面/选项卡中的不同模块之间共享
sharedService
?我知道这会打破水疗的概念。。但这仍然是正确的方法。这就是角度服务的用途。