实际上就是父Component把子Component的东西拿过来用而已。
能够拿哪些东西呢?
- 整个Component拿(通过class名称):
@ViewChild(TodoComponent) private todoList: TodoComponent;
然后就可以任意调用子Component中的方法了 - 拿变量:如子Component中构造器中接收的Service、一些非private的变量
- 拿DOM:直接获取子组件HTML页面中的DOM,该DOM需要用
#
命名。如<div #domLabel>cba</div>
。这个设置的命名,有个单独的名称,模板应用变量。 - 拿指令:添加exportAs属性,方便查找。
需要注意的是@ViewChild和@ViewChildren会在父组件钩子方法ngAfterViewInit()
调用之前赋值。
@ViewChild、@ViewChildren获取子元素的的时候,我们用的最多的应该就是通过模板变量名,或者直接通过class来获取了。还有一个特别要注意的地方就是获取单个指令对象的时候需要配合指令的exportAs属性使用,并且把他赋值给模板变量名。
参考:https://blog.csdn.net/wuyuxing24/article/details/84927282
网友评论