繁体   English   中英

angular2流星项目中两个组件之间的传递值

[英]Passing value between two components in angular2-meteor project

我正在使用angular2-meteor。

当我尝试在两个组件之间传递值时(当第一个组件中的值更改时,在第二个组件中创建一个事件并使用此新值),我现在有两种方法:

  1. 一种方法是流星方法:使用this.autorunSession.get
  2. 另一种方式是angular2方式:将Injectable服务与EventEmitter一起EventEmitter

哪种方式应该优先? 还是还有其他更好的方法? 谢谢

现在我使用了angular2流星。

尽管angular2-meteor教程到目前为止还没有使用或选择Angular 2服务Meteor Session的示例。

但是我感觉到Angular 2在前端处于领先地位,而流星使反应性变得更容易并且还处理了所有后端事务。

因此,我使用angular2方式使用服务在组件之间共享。 服务非常强大,就像@ todd-w-crone所说。

如果有更好的答案,我将转而接受该答案。

我发现创建一个名为App.states.ts的新服务非常实用,该服务可全局访问并模仿Session(获取/设置)。 我通常将此服务导入所有必要的组件,以获取或设置新值,例如User.status,company.profile,lastProduct等。

由于此服务是@injectable因此如果尚未设置值,它也可以利用其他服务。 这允许我在组件appState.getLastModifiedItem()请求一个变量,然后在app.states.ts我将编写此函数以传递this.modifiedItem或:

  • 请求另一个服务item.service.ts来获取数据
  • 使用itemCollection.findOne({...})调用另一个函数并返回该值。

您可以根据需要配置Mongo查询,或者将静态数据存储在appState或者将订阅项目保留在appState中。

请考虑到组件中由@injectable处理的所有订阅都是由此类组件导入的。 注意组件/服务之间的预订冲突。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM