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

ng-content 中隐藏的内容

如果你尝试在 Angular 中编写可重复使用的组件,则可能会接触到内容投射的概念。然后你发现了 ,并找到了一些关于它的文章,进而实现了所需的功能。...由于许多问题与Angular 中的组件生命周期相关,因此我们的主要组件将显示一个计数器,用于展示它已被实例化的次数: import { Component } from '@angular/core';...为了演示上述情况,我们将 Counter 组件包装在一个 ng-container> 中,看看我们的目标投影会发生什么: ng-container> 的值不会增加。这意味着我们的计数器组件只被实例化了一次 - 从未被销毁和重新创建。...因此,投影内容的生命周期将被绑定到它被声明的地方,而不是显示在地方。 这种行为有两个原因:期望一致性和性能。什么 “期望的一致性” 意味着作为开发人员,可以基于应用程序的代码,猜测其行为。

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

    Angular 6.x 指令快速入门

    npm install -g @angular/cli 创建新的项目 $ ng new project-name 启动本地服务器 $ cd project-name $ ng serve Angular...指令简介 Angular 的指令分为三种: 组件(Component):用于构建UI组件,继承于 Directive 类 属性指令(Attribute Directive):用于改变组件的外观或行为...结构指令(Structural Directive):用于动态添加或删除 DOM 元素来改变 DOM 布局 Angular 组件组成图 ?...(图片来源于网络) 第一节 - 创建指令 在 Angular 中,我们可以使用 HostBinding 装饰器,实现元素的属性绑定。...在 Angular 中,我们可以通过 ViewChild 装饰器来获取视图中定义的模板元素,然后利用 ViewContainerRef 对象的 createEmbeddedView() 方法,创建内嵌视图

    4.6K40

    Angular Material 的设计之美

    不会让开发人员感到困惑的简单 API。 在各种各样没有 bug 的用例中按预期行事。 通过单元测试和集成测试更好地测试行为。 可在 Material Design 规范的范围内进行定制。...除了常用组件之外,Angular Material 还有一个组件开发包 CDK。在设计界有一句名言“少即是多”,苹果的产品就是最好的证明。...大家可以点击 ng-matero 的 colors 页面 查看。ng-matero 也有所有颜色值对应的 colors helper,可以更加方便的创建丰富多彩的按钮或标签。...但是耐心看一下,就会发现其简洁之道,Angular Material 的 API 也是“少即是多”的一种表现。以表单组件为例,以下是一个滑块组件。...ng-container> ng-container> 另外,菜单组件还可以实现 popover 的效果,不过需要做一些特殊处理,如下

    6.2K30

    AngularDart 4.0 高级-结构指令 顶

    属性指令改变元素,组件或其他指令的外观或行为。 例如,内置的NgStyle指令可以同时更改多个元素样式。 您可以将许多属性指令应用于一个宿主元素。 您只能将一个结构指令应用于宿主元素。...对于一个简单的段落来说,隐藏和删除之间的区别并不重要。 当宿主元素连接到资源密集型组件时,这很重要。 即使隐藏,这种组件的行为也会继续。 该组件保持连接到其DOM元素。 它一直在倾听事件。...在应用结构指令之前,您可能想暂停一下,以考虑添加和删除元素以及创建和销毁组件的后果。 星号(*)前缀 当然,你注意到了指令名称的星号(*)前缀,并想知道为什么它是必要的以及它做了什么。...*ngFor内部详解 Angular以类似的方式将*ngFor转换为从星号(*)语法通过模板属性到模板元素。... 创建指令与创建组件类似。

    18.6K20

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

    ---- 前言 这一篇我们带来的是关于组件基础使用的最后一块,内容投影和Vue中的插槽很类似,在组件封装的时候非常有用,我们一起来体验一下。 正文 1....投影子元素 使用ng-container来包裹子元素,减少不必要的dom层,类似vue中的template 容器组件这样写 编号4 组件根据你想要的任何条件显式渲染内容,并可以进行多次渲染。在显式渲染 ng-template 元素之前,Angular 不会初始化该元素的内容。...]="content.templateRef"> ng-container> 在业务组件中我们使用ng-template来包裹我们的实际元素。...创建一个指令,并在NgModule中注册,一定要注册才能用哦~ 指令需要注册哦~ import { Directive, TemplateRef } from '@angular/core';

    1.1K30

    Angular 内容投影

    答案是可以的,在 Angular 中引入了内容投影的概念,即通过使用 指令来实现内容投影的功能。 ?...,使用上面定义的 AuthFormComponent 组件,具体如下: import { Component } from "@angular/core"; import { User } from...ngProjectAs 有时候我们的定义的组件可能会包含在其它容器中,比如 ng-container> ,这时我们的目标投影会发生什么: ng-container> ng-container> 通过设置 ngProjectAs 属性,终于重新找回了我们的 AuthRememberComponent 组件。...因此,投影内容的生命周期将被绑定到它被声明的地方,而不是显示在地方。 这种行为有两个原因:期望一致性和性能。什么 “期望的一致性” 意味着作为开发人员,可以基于应用程序的代码,猜测其行为。

    3.3K20

    angular组件的基本使用

    angular组件的基本使用 组件 组件模板 ng generate component xxx 新建组件(大驼峰命名) 属性绑定 public...通讯方案 直接的父子关系,父组件直接访问子组件的 public 属性和方法 直接的父子关系,借助于 @Input 和 @Output 进行通讯 没有直接关系,借助于 Service 单例进行通讯 利用...cookie 和 localstorage 进行通讯 利用 Session 进行通讯 直接调用 父组件访问子组件方法 //子组件定义一个public的方法,父组件直接调用 //子组件 public...) private childComponent: ChildComponent; @Input 和 @Output @Input ,在父组件设置子组件的属性 //子组件 @Input() public...panelTitle:string; //父组件上可以这样设置 panelTitle 这个参数 的标题"> @Output 子组件调用父组件的事件

    2.6K30

    angular知识点梳理第二篇-基本语法

    文章目录 前文回顾 基本语法 常见指令 NgModel NgFor NgIf Ng-container 管道 前文回顾 前面已经写了关于angular项目的基本介绍和如何创建一个angular项目,这一篇主要梳理一些...[FormsModule], providers: [], bootstrap: [AppComponent] }) export class AppModule { } 在需要使用数据绑定的组件进行数据的处理...在需要使用数据绑定的组件进行数据的处理 import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-home...:hidden是要区别开的,当if判断为false的时候,页面上是整个元素都消失了,而不是仅仅隐藏了css样式 在需要使用数据绑定的组件进行数据的处理 import { Component, OnInit...:{{isShow}} 我是一个div块 运行效果 true显示: false不显示: Ng-container ng-container

    3.6K30

    高级 Angular 组件模式 (6)

    06 Use 原文: Use Render Props最近在React社区中引起了轰动,但是与之类似的模式在Angular中似乎并没有得到太多关注...我在之前写的文章提及过,TemplateRefs就是Angular中的Render Props,同时我会在这篇文章中列举一个简单易用的例子。...Toggle 组件 组件能够通过ContentChild装饰器得到关于的引用,之后会赋予模板在渲染时所需要的状态,代码如下: ng-container *...ngTemplateOutlet="layoutTemplate; context: { on: this.on, toggle: this.toggle, fns: { toggle: this.toggle } }"> ng-container...> 这里ng-container>被当做一个占位符来使用,之后你可以使用*ngTemplateOutlet指令来填充它,layoutTemplate变量指代的是需要被渲染的模板,context对象包含的键值对会作为组件状态注入

    1.2K10

    高级 Angular 组件模式 (6)

    06 Use 原文: Use Render Props最近在React社区中引起了轰动,但是与之类似的模式在Angular中似乎并没有得到太多关注...我在之前写的文章提及过,TemplateRefs就是Angular中的Render Props,同时我会在这篇文章中列举一个简单易用的例子。...Toggle 组件 组件能够通过ContentChild装饰器得到关于的引用,之后会赋予模板在渲染时所需要的状态,代码如下: ng-container *...ngTemplateOutlet="layoutTemplate; context: { on: this.on, toggle: this.toggle, fns: { toggle: this.toggle } }"> ng-container...> 这里ng-container>被当做一个占位符来使用,之后你可以使用*ngTemplateOutlet指令来填充它,layoutTemplate变量指代的是需要被渲染的模板,context对象包含的键值对会作为组件状态注入

    1.6K20
    领券