原文

  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的联系和区别的更多相关文章

  1. Angular6 学习笔记——内容投影, ViewChild和ContentChild

    angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...

  2. [Angular] Difference between ViewChild and ContentChild

    *The children element which are located inside of its template of a component are called *view child ...

  3. angular2 学习笔记 ( Component 组件)

    refer : https://angular.cn/docs/ts/latest/guide/template-syntax.html https://angular.cn/docs/ts/late ...

  4. angular2的模板语法

    Angular 应用管理着用户之所见和所为,并通过 Component 类的实例(组件)和面向用户的模板来与用户交互. 从使用模型-视图-控制器 (MVC) 或模型-视图-视图模型 (MVVM) 的经 ...

  5. angular 模板语法(官方文档摘录)

    https://angular.cn/guide/template-syntax {{}} 和"" 如果嵌套,{{}}里面求完值,""就是原意 <h3&g ...

  6. Angular 4+ 修仙之路

    Angular 4.x 快速入门 Angular 4 快速入门 涉及 Angular 简介.环境搭建.插件表达式.自定义组件.表单模块.Http 模块等 Angular 4 基础教程 涉及 Angul ...

  7. Angular6 学习笔记——指令

    angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...

  8. Angular6 学习笔记——组件详解之组件通讯

    angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...

  9. Angular6 学习笔记——组件详解之模板语法

    angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...

随机推荐

  1. XML学习总结(2)——XML简单介绍

    一.XML概念 Extensible Markup Language,翻译过来为可扩展标记语言.Xml技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发布的XML1.0规范. 二.学习XM ...

  2. Java遍历目录下全部文件并替换指定字符串

    应用场景:比方有一个深层次的文件目录结构,如:javaAPI 每一个文件中面都有同样的内容,而我们要统一改动为其它内容.上千个文件假设一个个改动显得太不明智. import java.io.Buffe ...

  3. WebService 的Description 属性说明(转)

    转自:http://exception.thinksaas.cn/0/173/173623.html 在WebMethod的description 中可使用超文本, 举例: 如上图中,红框类的WebS ...

  4. JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)

    本文实例总结了JS数组排序技巧.分享给大家供大家参考,具体如下: 1.冒泡排序 var temp = 0; for (var i = 0; i < array.length; i++) { fo ...

  5. CORS原理

    http://blog.csdn.net/renfufei/article/details/51675148 https://html.spec.whatwg.org/multipage/infras ...

  6. Activity Test1

    源代码下载(免积分) :下载 Acitivty測试的API的父类是InstrumentationTestCase.这个类可以获取Instrumentation.来操作Activity. 对于acti ...

  7. Android .getRGB得到是负数,解决方案

    情景:ava.awt.color 下面的getRGB怎么得出的是负数???本来想通过getRGB得到一个整数,在另外的一个部分在根据这个整数构件一个color,因为参数规定只能能传整数!!!color ...

  8. 前端面试题(JavaScript)

    (前端面试题大全,持续更新) 箭头函数特点?箭头函数和普通函数的区别 手写懒加载(考虑防抖和重复加载问题) 手写bind(为什么要加预参数,为什么要加new) apply, call, bind ne ...

  9. 【例题 7-9 UVA-1601】The Morning after Halloween

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 对于没有出现的,当成0节点就好. 所以总是认为有3个人需要走到各自的终点. 将平面图转成点边图.这样比较好枚举. (二维变成一维,模 ...

  10. 【COGS1672】【SPOJ375】QTREE

    这是我的第一个边权链剖 COGS上和SPOJ有点不一样就是没有多组数据了本质还是一样的 我写的是COGS那个事实上改一改就能够去SPOJ AC了= -= (但是我如今上不去SPOJ卧槽(╯‵□′)╯︵ ...