@viewChild只能执行一次吗?

来源:2-6 开发项目组件上

sbura

2017-11-26

请教一个angular4与Highchart的问题:
1. 在封装了一个hchart.component组件, 组件暴露了一个data的输入属性。 在app组件中引用了hchart.component组件; app.component组件中api获取后台数据, 然后数据更新了, 但是页面没有根据新的数据重新绘制。
2. 修改了程序然后获取完了数据以后, 使用@ViewChild装饰器来执行hchart.component组件里的方法, 在获取完了数据之后, 执行hchart.component里的绘图方法 第一个图能出来。
3. 于是继续使用api获取第二个图的数据, 再次使用@ViewChild装饰器来执行hchart.component组件里的绘图方法,但是第二个图就出不来了 ,调试也没有报错,使用@ViewChild执行子组件的方法, 只能执行一次吗?

写回答

2回答

sbura

提问者

2017-11-27

//img.mukewang.com/szimg/5a1b6e690001c31b09240464.jpg

//img.mukewang.com/szimg/5a1b6f50000159c009040315.jpg

highchart被封装再组件里了, 暴露出来了一个输入属性cpuDaysSeries的属性, 属性输入以后, 执行子组件的ngOnInit来绘图。这段代码只能绘制第一个图, 再次使用类似的代码, 图形就会之不出来了,请问老师子组件方法在父组件中只能使用一次吗?

0
0

JoJo

2017-11-27

没用过Highchart,也没看到你的代码,你是在哪个组件生命周期钩子里做的更新?

0
2
sbura
老师, 我的问题已经解决了。 当, 过多以后, 需要执行某个child里的方法的时候, 如果使用@viewChild(childComnponent)的方式引进来, 那么只能执行child[0]的方法, 需要给然后使用@Viewchild('childA'),@Viewchild('childB')这种方式来写, 就可以把相同的子组件区别出来了。这个思路是对的吗?
2017-11-28
共2条回复

Angular4.0从入门到实战 打造股票管理网站

Angular新特性,教你熟练使用 Angular 和 Typescript 开发组件式单页应用

2683 学习 · 1361 问题

查看课程