2017-03-22 2 views
1

J'ai une application externe qui fournit config.json pour mon application Angular 2. J'ai besoin point d'entrée pour mon angulaire 2 comme:Comment partager des données avec une application externe

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

(alors je peux l'utiliser JSON dans tout mon service de angular2 app)

et mon application devrait être en mesure d'envoyer des données à partir service à toute application externe par l'appelant une certaine méthode comme:

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

Probablement je devrais faire des appels externes via la fenêtre globale? Toute aide et conseils ou exemples seront appréciés.

Mon service d'application angulaire 2 qui a une config globale à partager. "Une autre application js" - cela signifie une autre application js dans la même fenêtre.

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; 
 
     } 
 
    ); 
 
    } 
 

 
}

+0

Vous devez définir "application externe" car l'approche ne sera pas la même si c'est un serveur, ou une autre application js dans la même fenêtre/dans une fenêtre séparée ou une application aléatoire sur le même ordinateur. .. – n00dl3

+0

Merci! Ceci est une autre application js dans la même fenêtre. – Lemmy

+0

@ n00dl3 Je pense qu'il a deux apps/libs ou plus en cours d'exécution en même temps et il veut utiliser les résultats de l'un dans l'autre. –

Répondre

0

Vous pouvez utiliser quelque chose comme socket.io et créer une communication socket entre deux applications.

+0

Merci. Mais comment gros fichiers json je peux passer à travers socket? – Lemmy

+0

Je ne pense pas qu'il y ait une limitation de taille. J'ai essayé d'envoyer le code source du 'jquery' sur cette [démo] (https://socket.io/demos/chat/) et aucun problème n'est survenu :) Vous pouvez également stringifier et analyser les fichiers JSON en tant que chaînes pour communiquer –