首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ElementRef & TemplateRef & ViewContainerRef

今天在做ng项目,看着前人的代码有 viewChild() 等关键字。...新手有点疑惑,索性查查资料总结一下和ng相关的几个和DOM相关的几个概念 ElementRef 由于ng是跨平台的为了减少视图层和渲染层的耦合也为了让ng更适应多平台,ng帮我们封装了ElementRef...template本身是HTML的标签,用于保存客户端的内容机制,该内容在页面渲染不被加载,但是可以在运行时被javascript解析,详情可以看 Template HTML TemplateRef...,且可以轻松地访问到通过 ElementRef 封装后的 nativeElement。...需要注意的是组件视图中的 template 模板元素,经过渲染后会被替换成 comment 元素。 ViewContainerRef:用于表示一个视图容器,可添加一个或多个视图。

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

Angular2 之 结构型指令几个概念

Angular 有一个强力的模板引擎,它能让你轻松维护元素的DOM树结构。 Angular指令可分为三种 组件 属性型指令 结构型指令 组件 组件其实就是一个带模板的指令。...隐藏元素的利弊 当我们隐藏元素,组件的行为还在继续。 它仍然附加子啊它所属于的DOM元素上,它仍然在监听事件。angular会继续检查哪些能影响数据绑定的变更。.../core'; /** 选中器[],是匹配页面上的指令,可以有多个名称,由于是自己的指令,所以没有使用ng开头 */ @Directive({ selector: '[myUnless]' }) export...class UnlessDirective { /** * 我们需要访问模板,并且还需要一个渲染器来渲染它的内容。...* 我们通过TemplateRef来访问模板。渲染器是ViewContainerRef。 * 我们把它们都作为私有变量注入到构造函数中。

3K20

AngularDart 4.0 高级-结构指令 顶

该指南在谈论其属性以及指令的功能引用了指令类。 指南在描述如何将指令应用于HTML模板中的元素引用了属性(attribute)名称。...当你编写自己的结构指令,可以使用这些微观语法机制。 研究NgIf和NgFor的源代码是了解更多信息的好方法。 模板输入变量 模板输入变量是一个变量,其值可以在模板的单个实例中引用。...您通过在#(#var)前缀加上变量名称来声明一个模板引用变量。 引用变量是指其附加的元素,组件或指令。 它可以在整个模板中的任何地方访问模板输入和引用变量名称都有其自己的名称空间。...满足Angular模板中的类似需求。 编写一个结构指令 在本节中,您将编写一个与NgIf相反的UnlessDirective结构指令。 NgIf在条件为true显示模板内容。...您将通过TemplateRef获取内容并通过ViewContainerRef访问视图容器。 你在指令构造函数中注入这两个类作为类的私有变量。

16K20

ionic3应该善用组件和指令

在angular1代,组件和指令是一回事,即严格来说,没有组件这概念,只有指令,而到了angular2代,虽说组件仍是一种特殊的指令,但已经有一定目的明显区分开来,分别用Directive和Component...其实就是模版指令,如ngIf,当条件为true,该元素会被添加到DOM中。其主要依赖TemplateRef和ViewContainerRef来完成操作。...TemplateRef用来访问组件的模板,而ViewContainerRef可作为视图内容渲染器,将模板内容插入至DOM中。 组件 这个不必说了,我们用得最多的便是组件。...指令效果.png 5)指令扩展,支持事件操作 我们增加一个点击事件响应操作,点击,循环切换背景色。...为实现该指令,要借用TemplateRef和ViewContainerRef,TemplateRef用来访问组件的模板,而ViewContainerRef可作为视图内容渲染器,将模板内容插入至DOM中。

3.5K40

AngularJS爬坑之路——路由关于路由的那点事儿

类似路由器,AngularJS中的路由其实也是一样的概念 路由器,是将一个IP地址和一台唯一的电脑关联起来,这样我们在访问某个IP地址就会访问到这台具体的电脑,如访问:192.168.1.100->...} }).otherwise("/index"); }]); 在HTML页面中,可以通过链接的形式进行访问,通过ng-view指令进行视图模板的接收和显示 注册 以上就是一个路由的简单配置,其中主要涉及到几个API的使用 when(url, {option}):对用户访问的url路径进行...{option}处理的函数 url:表示用户访问的url路径 {option}:表示url路径对应的视图模板 1) templateUrl:表示和用户访问路径对应的html页面路径 2) controller...:用来控制templateUrl指向的页面的控制器 otherwise(path):用户访问路径不存在默认跳转的路径 path:url路径,一般会指定when()函数中配置的一个路径作为默认路径 但是

1.5K20

前端MVC学习总结(一)——MVC概要与angular概要、模板与数据绑定

: 方法二与方法一的区别: 使用模块标签{{ }}加载慢或渲染慢用户将看到标签,而ng-bind不会,但是使用模块要方便。...将此过滤器添加到 ng-bind-html 、data-ng-bind-html? 所绑定的数据中,便实现了在数据加载对于 html 标签的自动转义。 示例代码: <!...表达式会被立即计算,不像 JavaScript的onchange事件只会在最后一次改变触发(通常,当用户离开表单元素或按回车键)。当值的变化来自于模型,不会对表达式进行计算。...2.7、ng-repeat迭代 ngRepeat指令为集合中的每项实例化一个模板。每个模板的实例拥有自己的域,使用循环变量指向当前集合项上,$index指向当前项的索引或键值。...在src或者href属性上简单使用{{}}绑定时无法很好运行,出现404错误因为图片加载可能模板还未被替换成真实路径。

15.3K100

前端MVC学习总结(一)——MVC概要与angular概要、模板与数据绑定

1.5.1、AngularJS特点 1、功能强大,完善的前端MVVM框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能; 2、声明式风格、直观、易于操作、访问和实现 3、支持单元测试...当加载慢的效果: ? 方法二与方法一的区别: 使用模块标签{{ }}加载慢或渲染慢用户将看到标签,而ng-bind不会,但是使用模块要方便。...将此过滤器添加到 ng-bind-html 、data-ng-bind-html? 所绑定的数据中,便实现了在数据加载对于 html 标签的自动转义。 示例代码: <!...表达式会被立即计算,不像 JavaScript的onchange事件只会在最后一次改变触发(通常,当用户离开表单元素或按回车键)。当值的变化来自于模型,不会对表达式进行计算。...2.10、ng-src与ng-href 用于指定资源路径。 在src或者href属性上简单使用{{}}绑定时无法很好运行,出现404错误因为图片加载可能模板还未被替换成真实路径。

12.6K30

Angular 从入坑到挖坑 - 表单控件概览

响应式表单 建立表单 由组件隐式的创建表单控件实例 在组件类中进行显示的创建控件实例 表单验证 指令 函数 在表单数据发生变更模板驱动表单通过修改 ngModel 绑定的数据模型来完成数据更新,...而响应式表单在表单数据发生变更,FormControl 实例会返回一个新的数据模型,而不是直接修改原来的数据模型 4.2、模板驱动表单 通过使用表单的专属指令(例如 ngModel 进行双向数据绑定)...css 类 没发生的 css 类 控件被访问 ng-touched ng-untouched 控件的值发生变化 ng-dirty ng-pristine 控件的值是否有效 ng-valid ng-invalid...通过这些控件的 css 类样式,就可以通过添加自定义的 css 样式在用户输入内容不满足条件进行提示 .ng-valid[required], .ng-valid.required { border-left...在模板驱动表单中,因为不是直接使用的 FormControl 实例,因此这里应该在模板上添加一个自定义的指令来完成对于控件数据的校验 使用 angular cli 创建一个用来进行表单验证的指令 ng

18.9K20

ionic之AngularJS扩展2 移动开发

内联模板 : script 可能你没有注意过,HTML中常用的script标签在AngularJS中被重新定义了: 除了原来的脚本声明功能之外,如果script元素的type属性 定义为text/ng-template...使用ng-include指令 可以利用ng-include指令在HTML中直接使用内联模板,例如: 注意:其中a.html是一个字符串常量..."); 使用$http服务 还有一种常见的用法是使用$http服务指定cache参数,这将直接从$templateCache 中取出模板,而不必进行网络访问: $http.get("a.html",{...--模板视图内容--> ion-view指令有一些可选的属性: view-title - 视图标题文字 模板被载入导航视图ion-nav-view显示,这个属性值将显示在导航栏...ion-nav-bar中 cache-view - 是否对这个模板视图进行缓存 允许值为:true | false,默认为true hide-back-button -是否隐藏导航栏中的返回按钮 当模板被载入导航视图

3.5K20
领券