Anguar4中如何保持监听某一字段的值的变化。
在使用angular4框架开发过程中,会遇到某些场景。
例如:公共组件中有一个全局下拉列表,每当该下拉列表值改变,所有激活的子组件都要做出相应改变。ng1时有$watch指令,但是在ng4中没有找到类似方法。
目前采用的是生命周期的Docheck(),对性能消耗非常大,还有一些不可预期的问题,想请教有没有更好的监听方法.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
结合
Rxjs
,下拉列表的值作为一个BehaviorSubject
放到公用的service中,子组件模版上直接使用async pipe
解析值。例(公用组件的service):
每次修改下拉值只需(设注入service为
xxxService
):所有的子组件引用服务后只需在模版使用
async pipe
便可自动监听订阅数据变化:模版
也可以直接在组件中订阅:
注意
service
一定要保持单例你在哪里改的数据,就在那里监听就好了啊比如有这么一个服务
在组件里依赖注入这个服务
然后在html模版就能直接使用服务里的属性值做渲染了