[英]Passing value between two components in angular2-meteor project
我正在使用angular2-meteor。
当我尝试在两个组件之间传递值时(当第一个组件中的值更改时,在第二个组件中创建一个事件并使用此新值),我现在有两种方法:
this.autorun
和Session.get
。 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.