我有一个使用AngularJS和React组件的应用程序。我想在两个组件之间传递数据。我有一个角度服务存储状态数据,我希望我的反应组件读取这些数据。
我正在寻找一种可以在这两个组件之间共享数据的方法。 我还想知道是否有办法使用http公开我的角度服务(类似于一个宁静的API)。
答案 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});
...