ViewChild与ContentChild的联系和区别
原文
https://www.jianshu.com/p/5ab619e576ea
大纲
1、认识ViewChild
2、认识ContentChild
3、ViewChild与ContentChild的联系和区别
认识ViewChild
/*
angular中文文档的说明
You can use ViewChild to get the first element or the directive
matching the selector from the view DOM. If the view DOM changes,
and a new child matches the selector, the property will be updated. View queries are set before the ngAfterViewInit callback is called. Metadata Properties:
1、selector - the directive type or the name used for querying.
2、read - read a different token from the queried elements. 翻译:
你可以使用ViewChild去获得从DOM视图中通过选择器匹配到的第一个元素或者指令。
如果这个DOM视图发生变化,那么对应匹配到的ViewChild也会跟着更新。(更新未实现)
视图的获取是在ngAfterViewInit的时候
元数据匹配:
1、选择器:指令类型(包括组件)
2、根据不同的token获取节点元素(token指模板变量,如#child) 通俗翻译:
可以通过ViewChild这个装饰器获取视图元素中的内容,
这个视图包括视图模板中的视图元素,也包括作为子组件放置在视图模板中的内容。
ViewChild装饰器不可以在constructor的时候注入,
因为ViewChild装饰器获取元素是在ngAfterViewInit回调前被调用,
即在ngAfterViewInit中才实现
ViewChild装饰器获取目标元素的方式有两种:
1、一种是通过在模板元素中存在的子组件的组件名,如:ChildComponent
2、一种是通过获取模板元素的模板变量如#child来指定获取
*/
认识ContentChild
/*
angular中文文档:
You can use ContentChild to get the first element or the directive
matching the selector from the content DOM. If the content DOM changes,
and a new child matches the selector, the property will be updated. Content queries are set before the ngAfterContentInit callback is called. Metadata Properties:
1、selector - the directive type or the name used for querying.
2、read - read a different token from the queried element. 翻译:
你可以使用ContentChild去获得从DOM视图中通过选择器匹配到的第一个元素或者指令。
如果内容DOM发生变化,并且新的子项与选择器匹配,则属性将被更新。
内容查询发生在ngAfterContentInit回调前,即contentChild的获取发生在生命周期
ngAfterContentInit。 元数据属性:
1、选择器——用于查询的指令类型或名称。
2、从查询元素读取不同的令牌。
*/
ViewChild与ContentChild的联系和区别
/*
ViewChild和ContentChild其实都是从子组件中获取内容的装饰器 它们本质的区别其实就只是在于方法调用的时机以及获取内容的地方: 1、时机:
ViewChild在ngAfterViewInit的回调中调用
ContentChild在ngAfterContentInit的回调用调用 2、获取内容的地方
ViewChild从模板中获取内容
ContentChild需要从ng-content中投影的内容中获取内容,
也就是没有使用ng-content投影就无法获取内容
*/
ViewChild与ContentChild的联系和区别的更多相关文章
- Angular6 学习笔记——内容投影, ViewChild和ContentChild
angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...
- [Angular] Difference between ViewChild and ContentChild
*The children element which are located inside of its template of a component are called *view child ...
- angular2 学习笔记 ( Component 组件)
refer : https://angular.cn/docs/ts/latest/guide/template-syntax.html https://angular.cn/docs/ts/late ...
- angular2的模板语法
Angular 应用管理着用户之所见和所为,并通过 Component 类的实例(组件)和面向用户的模板来与用户交互. 从使用模型-视图-控制器 (MVC) 或模型-视图-视图模型 (MVVM) 的经 ...
- angular 模板语法(官方文档摘录)
https://angular.cn/guide/template-syntax {{}} 和"" 如果嵌套,{{}}里面求完值,""就是原意 <h3&g ...
- Angular 4+ 修仙之路
Angular 4.x 快速入门 Angular 4 快速入门 涉及 Angular 简介.环境搭建.插件表达式.自定义组件.表单模块.Http 模块等 Angular 4 基础教程 涉及 Angul ...
- Angular6 学习笔记——指令
angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...
- Angular6 学习笔记——组件详解之组件通讯
angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...
- Angular6 学习笔记——组件详解之模板语法
angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...
随机推荐
- 1.3 Quick Start中 Step 4: Send some messages官网剖析(博主推荐)
不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Step 4: Send some messages Step : 发送消息 Kaf ...
- 模板 Fail树
fail树就是将Trie图的Fail指针反指,从而生成一棵树,这个树的性质是:子节点对应字符串为以当前串为后缀,而子节点为原串的前缀,前缀的后缀就是嵌套在原串中的子串. 模板:BZOJ3172 Des ...
- Scala入门到精通——第二十二节 高级类型 (一)
作者:摇摆少年梦 视频地址:http://www.xuetuwuyou.com/course/12 本节主要内容 this.type使用 类型投影 结构类型 复合类型 1. this.type使用 c ...
- DBLINK做系统集
过度使用DBLINK做系统集成会带来的问题 过度使用DBLINK做系统集成会带来很多问题,问题主要由以下几点: 1. 大量消耗数据库资源: 本地系统每通过DBLINK链接远端系统一次,都会生成一个本地 ...
- HTML基础第十讲---排版卷标
转自:https://i.cnblogs.com/posts?categoryid=1121494 网页的排版部份也是很重要的一环,有些现成的卷标就可以让您轻易的完成缩排或是一些特殊格式的编排喔! [ ...
- 学习笔记(三):jQuery之DOM
1.jQuery属性. 获取元素属性的语法: attr(name) 例子:$("#img1").attr("src"); 设 ...
- 逆波兰法(计算器)程序<无括号版>
涉及队列.栈的运用. Java中队列可以用: Queue<String> q = new LinkedList(); 来声明,其主要的方法有: poll(),peak(),offer(), ...
- Monkey (压力测试)-移动端手机压力测试工具 monkey以及monkeyrunner
4. Monkey (压力测试) 这个是Android提供的系统工具.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey测试是一种 ...
- java hadoop file system API
org.apache.hadoop.fs Class FileSystem java.lang.Object org.apache.hadoop.fs.FileSystem All Implement ...
- USB串行端口
USB-SERIAL CH341A(COM22)USB串行端口