请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

@viewChild只能执行一次吗?

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

正在回答 回答被采纳积分+3

2回答

提问者 sbura 2017-11-27 09:50:12

https://img1.sycdn.imooc.com//szimg/5a1b6e690001c31b09240464.jpg

https://img1.sycdn.imooc.com//szimg/5a1b6f50000159c009040315.jpg

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

0 回复 有任何疑惑可以回复我~
JoJo 2017-11-27 09:35:48

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

0 回复 有任何疑惑可以回复我~
  • 提问者 sbura #1
    老师, 代码图片已经截图了, 请教
    回复 有任何疑惑可以回复我~ 2017-11-27 09:51:13
  • 提问者 sbura #2
    老师, 我的问题已经解决了。 当<childComponent></childComponent><childComponent></childComponent>, 过多以后, 需要执行某个child里的方法的时候, 如果使用@viewChild(childComnponent)的方式引进来, 那么只能执行child[0]的方法, 需要给<childComponent #childA></childComponent><childComponent #childB></childComponent>然后使用@Viewchild('childA'),@Viewchild('childB')这种方式来写, 就可以把相同的子组件区别出来了。这个思路是对的吗?
    回复 有任何疑惑可以回复我~ 2017-11-28 10:21:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信