【Angular2】组件交互异步问题
2017-09-16 15:26
281 查看
问题
父组件通过服务调取后台接口获取数据子组件@Input变量是父组件获取数据中的一个数据
由于子组件在渲染的时候,父组件的数据还没有获取到,所以会出现问题
方法1
使用setTimeout函数setTimeout(() => { this.diff = this.examTimeLength * 60; }, 300);
这种方法实现了功能,但是不太可取,因为后台返回的数据可能会更慢,300ms内一旦没有返回,这条代码走过去程序就会一直报错
方法2
使用ngOnChanges监测变量的变化ngOnChanges(changes: SimpleChanges) { if(changes['examTimeLength']&&this.examTimeLength) { // console.log("changes---"+changes['examTimeLength'].currentValue); this.diff = this.examTimeLength * 60; } }
如果监测到了输入变量的变化,同时里面是有值得话(会有两次变化,第一次没有值),可以进行自己的代码逻辑
小结
组件交互需要我们了解,组件的生命周期,异步问题,以及相关知识点在Angular的这些规范下,实现自己想要的功能
参考资料:
https://segmentfault.com/a/1190000008759314
https://segmentfault.com/q/1010000008965321
相关文章推荐
- Ajax异步交互解决数据乱码问题
- angular写一个列表的选择全选交互组件的示例
- Ajax 是什么?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?以及 HTTP状态码
- angular2搭建环境+部署项目以及创建新组件to many symbolic links encountered的问题
- Redux和React组件的异步交互
- ajax异步交互过慢的问题如何转嫁
- 第二十三节: EF性能篇(三)之基于开源组件 Z.EntityFrameWork.Plus.EF6解决EF性能问题 第四节:一些指令总结 定时调度系列之Quartz.Net详解 第十七节:易混淆的概念(静态和非静态、拆箱和装箱) 那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)
- 客户端传递json与服务端异步交互问题(struts2+jquery)
- angular学习总结十——动态创建组件并实现交互一
- angular ui-bootstrap的Datepicker Popup组件问题总结
- Angular使用Promise解决多个异步回调问题
- angular中采用ajax交互后台servlet问题
- 异步交互的优势-解决C10K问题
- angular2向组件中传值的问题
- Ajax异步交互解决数据乱码问题
- vue同步父子组件和异步父子组件的生命周期顺序问题
- WebView和ListView的交互使用,异步加载的问题
- Angular 组件之间的交互的示例代码
- vue父组件异步传递prop到子组件echarts画图问题踩坑总结
- 使用xmlConn组件和struts来实现数据的异步交互