2016-03-07 1 views
1

Я ищу способ взаимодействия между несколькими корневыми компонентами, живущими на странице. Предполагается, что я разрабатываю кучу модулей для CMS, которые должны иметь возможность обмениваться данными, потреблять события или просто знать друг о друге, если пользователь решит добавить их на страницу. Из-за природы CMS эти компоненты загружаются самостоятельно.Связь с угловым 2 кросс-приложения (корневой компонент)

В Угловое 1 существует возможность получить ссылку класса контроллера с помощью JQuery:

$("#MyApplication").controller(); 

ли Угловое 2 каким-то образом обеспечить подобным образом или даже лучше подход, чтобы позволить им общаться друг с другом?

ответ

2

Вы можете использовать общую услугу.

class SharedService { 
    ... 
} 

var sharedService = new SharedService(); 

bootstrap(App1, [provide(SharedService, {useValue: sharedService})]); 
bootstrap(App2, [provide(SharedService, {useValue: sharedService})]); 

В компонентах, где вы хотите общаться с другим угловым приложением просто вводит услугу

constructor(private sharedService:SharedService) { 
    sharedService.someObservable.subscribe(...); 
    sharedService.someObservable.emit(...); 
} 
+0

Можете ли вы привести примеры plunker для этого? @Gunter –

+0

Как насчет создания плункера, и если у вас возникнут проблемы, я посмотрю и попытаюсь его исправить? –

+1

вот пример: http://plnkr.co/edit/aZqdJe3OZ8K2odHioWkB – pajics

Смежные вопросы