首页
学习
活动
专区
圈层
工具
发布

Angular DOM 抽象概述

ElementRef 在日常工作中,Web 工程师经常需要跟 DOM 打交道。...模板元素是一种机制,允许包含加载页面时不渲染,但又可以随后通过 JavaScript 进行实例化的客户端内容。我们可以将模板视作为存储在页面上稍后使用的一小段内容。...> ` }) export class HelloWorldComponent{} 可以发现通过 ngTemplateOutlet 指令,大大减轻了我们的工作量...() 方法创建 ComponentFactory 对象 调用组件容器对象的 createComponent() 方法创建组件并自动添加动态组件到组件容器中 基于返回的 ComponentRef 组件实例...实际工作中,还需要利用 ViewChild、ViewChildren、ContentChild 和 ContentChildren 装饰器,或者基于 Angular 依赖注入特性,通过构造注入的方式,获取相关的对象

4.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Angular ViewChild和ViewChildren

    ViewChild Angular 为我们提供 ViewChild 和 ViewChildren 装饰器来获取模板视图中匹配的元素。ViewChild 是属性装饰器,用来从模板视图中获取匹配的元素。...现在我们先来更新一下 AuthFormComponent 组件(关于它的出身,可以浏览 “Angular 内容投影” 这篇文章),即把下面的消息提示封装为组件。...,我们需要同步更新一下 AuthFormComponent 组件,具体如下: import { Component, Output, EventEmitter, ContentChildren, ViewChild...组件,ViewChild 装饰器除了支持 Type 类型参数外,还支持字符串参数,而字符串的值是模板引用的值。...但在实际项目中,我们是不推荐直接使用 DOM API 执行 DOM 操作的,我们要尽量减少应用层与渲染层之间强耦合关系,从而让我们应用能够灵活地运行在不同环境。

    3.2K20

    angular知识点梳理第三篇-组件

    this的传递 【parent.component.html】 在子组件中进行@Input进行接收即可 【children.component.html】 子组件传值(函数)给父组件 方案一 通过viewchild...:在父组件的ts文件中引入viewchild模块 【parent.component.ts】 方案二:通过@Output触发父组件的方法 第一步:在子组件ts文件中引入angular的核心模块中的output...子组件传值(函数)给父组件 方案一 通过viewchild进行节点获取 第一步:在父组件引入子组件的地方添加节点值 【parent.component.html】 <!...模块 【parent.component.ts】 // 引入angular核心模块的viewchild模块 import { Component, OnInit,ViewChild } from '@angular...-- (childOut) 就是子组件中自己起的名字 $event可以写也可以不写,这里就是子组件传递的数据--> <app-children (childOut)="parentInput($event

    2.7K10

    Angular 从入坑到挖坑 - 组件食用指南

    四、Step by Step 4.1、组件与模板 4.1.1、组件的基础概念 组件包含了一组特定的功能,每个组件的功能都单一且独立,可以进行重复使用;组件可以通过 angular cli 进行创建,生成的组件位于工作空间的...非空断言运算符用来告诉编译器对特定的属性不做严格的空值校验,当属性值为 null or undefined 时,不抛错误。..._title = (title && title.trim()) || '父组件的 title 属性值为空'; } get parentTitle(): string { return...4.4.3、父组件获取子组件信息 使用 @ViewChild 装饰器获取 在子组件上定义一个模板引用变量 父组件内容: 1、使用 @ViewChild 装饰器获取子组件数据...的引用,然后使用 @ViewChild 装饰器来接收子组件的 dom 信息,从而获取到子组件的数据或方法 // 引入 ViewChild import { Component, OnInit,

    17.5K30

    【Angular教程】-内容投影u002F@ContentChildu002F@ViewChild

    ---- 前言 这一篇我们带来的是关于组件基础使用的最后一块,内容投影和Vue中的插槽很类似,在组件封装的时候非常有用,我们一起来体验一下。 正文 1....投影多块内容/组件 容器组件这样写 使用标签锁定投影位置 使用class锁定投影位置 用自定义组件名称锁定投影位置 使用自定义属性锁定投影位置 编号2 不建议使用 ng-content 元素,因为只要组件的使用者提供了内容,即使该组件从未定义 ng-content 元素或该 ng-content 元素位于 ngIf 语句的内部,该内容也总会被初始化...@ContentChild & @ContentChildren 使用这两个装饰器来对被投影的组件进行操作 使用注解在业务组件中定义被投影的组件 @ContentChild(HelloWorldComp...@ViewChild & @ViewChildren 使用这两个装饰器来对指接子组件进行操作 使用注解在业务组件中定义子组件 @ViewChild(HelloWorldComp) helloComp

    87030

    Angular6自定义表单控件方式集成Editormd

    曾经找到过“Editor.md”,看之心喜,一直想在Angular中集成下这款markdownpad编辑器玩,在网上也只找到一篇通过指令集成的,虽然可以实现,但还是希望能做成组件形式的,之后看到一篇自定义组件的文章...ControlValueAccessor 这是自定义表单组件的核心,只有继承这个接口,才有被 Angular的formControl识别的资格。...准备工作 经过上面大致了解ControlValueAccessor,在正式开始前还需要最后的准备工作: 使用npm或者yarn安装jquery npm install jquery 或者 yarn add...@ViewChild('host') host; // hmtl中添加 #host标识,用于选择组件模板内的节点 ngAfterViewInit(): void { this.init();...useExisting: forwardRef(() => EditorMdComponent), multi: true }; 最终代码 EditorMdComponent import { Component, ViewChild

    5.9K20

    【技巧】ionic3的小彩蛋

    解决非交互组件的点击延时 这类组件也是可以响应点击事件的,只是因为要判断是否有后续响应(如判断是否双击),会有几百ms的延时,这时加上tappable即可 二、较为隐藏的 输入框内容支持复制黏贴...ion-input包含在ion-item里面即可,而且如果不包,在ios可能还会出现问题。...组件使用某平台样式 一般我们在config里面的mode设置了平台后,主题风格就会是该平台,当我们某个组件想选用另一平台的样式时,它有mode属性时很容易实现,当没有的时候呢?...@ViewChild(Refresher) refresher: Refresher; ionViewDidLoad(){ this.refresher...._beginRefresh(); } input相关组件的隐藏事件 像ion-searchbar、ion-input、ion-textarea等,都是有ionBlur、ionFocus、ionChange

    80950

    Angular+PhotoSwipe实现图片预览组件

    先前写过一篇文章:【组件篇】ionic3图像手指缩放滑动预览,是原来封装的一个组件的原型,后来用ionic4后,这个组件不兼容,需要改,那时我开始考虑组件的封装不依赖于ionic自身的组件,所以重写了一个...组件的核心是使用了PhotoSwipe,它是Github上一个热门的开源项目,有近18K的star,可以上官网看效果,其中在手机端的效果如图: ?...-- element will get class pswp__preloader--active when preloader is running --> <div...npm安装photoswipe依赖: npm i photoswipe 创建Angular组件,并在scss文件中导入样式: @import "~photoswipe/dist/photoswipe.css...,使用时这样应用: 在任何文件任何地方放置这样一个组件: 然后如下调用: @ViewChild(PhotoSwipeComponent) photoSwipe

    2.5K30

    高级 Vue 组件模式 (5)

    05 使用 $refs 访问子组件引用 目标 在之前的文章中,详细阐述了子组件获取父组件所提供属性及方法的一些解决方案,如果我们想在父组件之中访问子组件的一些方法和属性怎么办呢?...设想以下一个场景: 当前的 custom-button 组件中,有一个 input 元素 我们期望当 toggle 的开关状态为开时,显示 input 元素并自动获得焦点 这里要想完成目标,需要获取某个组件或者每个元素的引用...,在不同的 mvvm 框架中,都提供了相关特性来完成这一点: angularjs: 可以使用依赖注入的 $element 服务 Angular: 可以使用 ViewChild、ContentChild...因为 input 的渲染逻辑取决于 prop 属性 on 的状态,如果直接调用 focus 方法,这时 input 元素的渲染工作很可能还未结束,这时 this....="toggle"> 之后修改 onToggle 方法中的逻辑以满足目标中的需求,当 toggle 组件状态为开时,调用 custom-button 组件的 focus

    61810

    angular面试题及答案_angular面试

    父子组件之间的数据传递 @Input 父组件向子组件传递数据和传递方法(子组件中使用) @output 子组件传值给父组件 (事件传递的方式)(子组件中使用) //子组件中使用事件发射器 @output...ContentChild 与 ViewChild 的异同点 相同点 都是属性装饰器 都有对应的复数形式装饰器:ContentChildren、ViewChildren 都支持 Type...Function|string 类型的选择器 不同点 ContentChild 用来从通过 Content Projection 方式 (ng-content) 设置的视图中获取匹配的元素 ViewChild...生命周期钩子中才能成功获取通过 ViewChild 查询的元素 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    13.9K120
    领券