【问题标题】:How to share data with external application如何与外部应用程序共享数据
【发布时间】:2017-03-22 12:13:12
【问题描述】:

我有一些为我的 Angular 2 应用程序提供 config.json 的外部应用程序。 我需要 angular 2 的入口点,例如:

angular2Application.setConfig('../config.json'); // in browser console e.g.

(然后我可以在我的任何 angular2 应用服务中使用这个 json)

而且我的应用程序应该能够通过调用以下方法将一些数据从服务发送到任何外部应用程序:

var config = angular2Application.getConfig(); // in external other JS application

也许我应该通过全局窗口进行外部调用?任何帮助和建议或示例将不胜感激。

我的 Angular 2 应用程序服务具有要共享的全局配置。 “另一个 js 应用程序” - 这意味着同一窗口中的另一个 js 应用程序。

import {Injectable} from "@angular/core";
import {Observable} from "rxjs";
import {SomeService} from "../../some.service";

@Injectable()
export class SharingService {
  
  public config; // the external app should be able to get this config

  constructor(public someService: SomeService) {
    this.someService.dataChanged.subscribe(
      (data) => {
        this.config = data;
      }
    );
  }

}

【问题讨论】:

  • 您需要定义“外部应用程序”,因为如果 t 是服务器,或者同一窗口中/在单独的窗口中的另一个 js 应用程序,或者可能是一些随机应用程序正在运行,则方法将不一样在同一台计算机上...
  • 谢谢!这是同一窗口中的另一个 js 应用程序。
  • @n00dl3 我认为他有两个或多个应用程序/库同时运行,他想在另一个中使用一个的结果。
  • @Lemmy,这仍然很模糊,我们只知道 Angular 应用程序,而不是另一个,我们如何从 window 对象访问它的属性/方法,例如...?
  • @Lemmy 您可以在窗口上共享保存它的数据,或者您可以使用更复杂的东西,两个应用程序都注册,您可以将另一个应用程序的结果通知每个应用程序。

标签: javascript angular typescript bootstrapping


【解决方案1】:

您可以使用socket.io 之类的东西并在两个应用程序之间创建套接字通信。

【讨论】:

  • 谢谢。但是我可以通过套接字传递多大的 json 文件?
  • 我认为没有大小限制。我尝试在这个demo 上发送jquery 的源代码,没有发生任何问题:) 您还可以将JSON 文件字符串化并解析为字符串以进行通信
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
  • 2011-02-28
  • 1970-01-01
相关资源
最近更新 更多