将angularJS服务公开为API

时间:2018-02-15 20:05:42

标签: angularjs reactjs api

我有一个使用AngularJS和React组件的应用程序。我想在两个组件之间传递数据。我有一个角度服务存储状态数据,我希望我的反应组件读取这些数据。

我正在寻找一种可以在这两个组件之间共享数据的方法。 我还想知道是否有办法使用http公开我的角度服务(类似于一个宁静的API)。

1 个答案:

答案 0 :(得分:1)

您可以使用const ngScope = window.angular.element('my-ng-comp')来获取对angularjs组件范围(或rootScope或您公开共享数据的任何范围)的引用。 )在你的反应应用程序中。

Q& D way:window.ngStuff = someNgThing;

请记住,如果从外部更改ng范围内的某些内容,则ng更改检测将不会运行,需要将setter或callback传递到外部,您可以手动触发它(使用$ scope.apply或$ timeout等)。

另一个问题是,没有办法在浏览器中运行http服务器。

编辑:基于RXJS BehaviorSubject制作了一个简单的应用程序间通信类。这样的事情会更简洁,因为不同的应用程序不需要彼此了解任何事情:

var app1Comms = new Comms();
app1Comms.sharedState$.subscribe(state => log('App 1 received state', state));
app1Comms.setState({a:2}); 
...

https://plnkr.co/edit/4WvHeWriSyu5c0NqlCLS?p=preview