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

Angular2 之 结构型指令几个概念

是这三种指令中最常用的,我们会编写大量的组件来构建application。 属性型指令 属性型指令会修改元素的外观或者行为。 e.g. NgStyle可以修改元素的好几个样式。...结构型指令 结构型指令通过添加和删除 DOM 元素来改变DOM的布局。 我们经常看到的内置的结构型指令有:ngIf、ngSwitch、ngFor。 下面我们着重介绍ngIf。...标签 结构型指令,比如ngIf,使用HTML 5的template标签 完成它们的“魔法”。 控制Template标签内DOM添加与显示,在模板级别使用的。...template-in-out-of-a2.png 显然,Angular把标签及其内容替换成了一个空白 标签。 这只是它的默认行为。...要么显示的包含在Template标签中,要么隐式的使用*这种语法糖去包装在Template标签中。它简化了ngIf和ngFor —— 无论是写还是读。

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

    ionic3应该善用组件和指令

    其实ionic3(angualr4)和ionic2(angular2)差不多,但和ionic1(angular1)就差别非常大了,可以说基本是推倒了重来。...在angular1时代,组件和指令是一回事,即严格来说,没有组件这概念,只有指令,而到了angular2时代,虽说组件仍是一种特殊的指令,但已经有一定目的明显区分开来,分别用Directive和Component...往往很多人会封装组件,但不会去封装指令,而选择用Provider或者Pipe(管道,相当于angular1时的过滤器filter),甚至样式来实现,虽说这也能解决部分问题,但不是最优的,Directive...Directive——指令 三种分类: 属性指令 属性指令指的是以属性形式使用的指令,如ngModel、ngClass、ngStyle等。 结构指令 结构指令,用于修改DOM结构。...cli使用如下命令创建基本指令,会生成bg-color.ts文件: ionic g directive bgColor 2)修改指令。

    5K40

    带你快速走进Chrome扩展开发的大门

    Chrome扩展可以使用浏览器提供的所有JavaScriptAPI。使用扩展程序比Web应用程序更强大的是它们对ChromeAPI的访问。 可以获得更改网站的功能和行为。...清单记录重要的元数据,定义资源,声明权限,并标识哪些文件在后台和页面上运行 2 content scripts 内容脚本在网页上下文中执行 Javascript。...他们还可以读取和修改他们注入的页面的 DOM。...它可以使用所有的Chrome API,但不能直接与网页内容交互;这就是内容脚本的工作 4 popup/page 扩展可以包含各种 HTML 文件,例如弹出窗口、选项页面和其他 HTML 页面。...(包含清单文件的文件夹) PS:插件开发过程中会多次修改,在修改后需要在浏览器的扩展程序中重新刷新后生效 实现专注阅读模式 通过开发chrome expansion实现单击扩展ICON进入和退出掘金文章专注阅读模式

    1.2K10

    JavaScript是如何工作的:渲染引擎和优化其性能的技巧

    渲染引擎概述 渲染引擎的职责就是渲染,即在浏览器窗口中显示所请求的内容。 渲染引擎可以显示 HTML 和 XML 文档和图像。如果使用其他插件,渲染引擎还可以显示不同类型的文档,如 PDF。...收下是上面 DOM 和 CSSOM 树的渲染器树的样子: ?...HTML使用基于流的布局模型,这意味着大多数时间它可以一次性计算几何图形。坐标系统相对于根渲染器,使用左上原点坐标。...布局是一个递归过程 - 它从根渲染器开始,它对应于 HTML 文档的 html> 元素。 布局以递归方式继续通过部件或整个渲染器层次结构,为每个需要它的渲染器计算几何信息。...优化你的 CSS 通过添加和删除元素,更改属性等来修改 DOM 将使浏览器重新计算元素样式,并且在许多情况下,重新计算整个页面的布局或至少部分布局。

    2.3K30

    2-进军 angular1.x 表达式和指令

    2-表达式和指令,数据绑定 angular1.x 学习目录 1-angular 学习导航和基础 2-表达式和指令,数据绑定 3-模型和作用域 scope 4-控制器和过滤器 一 表达式 ng-init...tips 每个页面只有一个 ng-app 指令,多的不起作用 1.ng-app是一个特殊的指令,一个HTML文档只出现一次,如出现多次也只有第一个起作用;ng-app可以出现在html文档的任何一个元素上...angular.bootstrap(document.getElementById("myApp2"), ['myApp2']) }) 复制代码 二 指令 一些常用的指令 ng-app 指令初始化一个...对普通元素无效; ng-bind用于普通元素,不能用于表单元素,应用程序单向地渲染数据到元素; 当ng-bind和{{}}同时使用时,ng-bind绑定的值覆盖该元素的内容。...vue 一样的元素名来调用我们的指令(这里的指令我们可以理解为 一个我们自己创建的带有特殊指令的元素) 限制使用 var app = angular.module("myApp", []); app.directive

    3.3K20

    Angular 显示英雄列表

    *ngFor 列出这些英雄 打开 HeroesComponent 的模板文件,并做如下修改: 在顶部添加 2> 然后添加表示无序列表的 HTML 元素() 在  中插入一个  修改成这样: *ngFor 是一个 Angular 的复写器(repeater)指令。...你可以定义属于特定组件的私有样式,并且让组件所需的一切(代码、HTML 和 CSS)都放在一起。 这种方式让你在其它地方复用该组件更加容易,并且即使全局样式和这里不一样,组件也仍然具有期望的外观。...你可以在本指南底部的查看最终代码中找到它们。 @Component 元数据中指定的样式和样式表都是局限于该组件的。 ...用户可以选择一个英雄,并查看该英雄的详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 的样式类。

    5.4K30

    Angular 显示英雄列表

    *ngFor 列出这些英雄 打开 HeroesComponent 的模板文件,并做如下修改: 在顶部添加 2> 然后添加表示无序列表的 HTML 元素() 在  中插入一个 <li...完成后应该如下显示: heroes.component.html heroes.component.html (heroes template)content_copy2>My Heroes2...你可以定义属于特定组件的私有样式,并且让组件所需的一切(代码、HTML 和 CSS)都放在一起。 这种方式让你在其它地方复用该组件更加容易,并且即使全局样式和这里不一样,组件也仍然具有期望的外观。...你可以在本指南底部的查看最终代码中找到它们。 @Component 元数据中指定的样式和样式表都是局限于该组件的。 ...用户可以选择一个英雄,并查看该英雄的详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 的样式类。

    6.1K70

    【浏览器渲染原理】

    渲染引擎下边还有很多子模块: 网络模块:负责网络请求 JS解析器:解析和执行js代码 … 渲染引擎也称内核是浏览器的核心。 2....渲染器进程接收到的数据,也就是HTML,渲染器进程的核心任务就是把HTML、CSS、JS、静态资源等,资源渲染成用户可以交互的Web页面: 构造DOM树:渲染器进程的主进程将html进行解析,通过词法分析...html结构,如果js代码里用例document.write()来修改html,那么之前的解析就都没有意义了,所以我们一定要把script标签放在合适的位置,或者使用async或deffer属性来异步加载执行...因为DOM是通过html解析获得的并不关心样式,而Layout tree是通过DOM和计算好的样式来生产的,Layout Tree就是最后展示给用户的UI界面; 绘制:比如z-index属性影响节点绘制的层级关系...当我们改变某个元素的颜色属性时,不会触发重新布局,但是会触发样式计算和绘制(重绘)。

    1K20

    Angular4记账webApp练手项目之二(在angular4项目中使用Angular WeUI)

    安装及引用 安装 npm install angular-weui --save 安装后还需要引用weui 样式以及我们的font-awesome图标苦,在我们项目index.html中引用 html添加菜单组件 我们参照官网简化使用了tabbar组件,修改menu.component.html如下: <weui-tabbar...这里写图片描述 解决上面问题,有两个思路,1、固定底部和顶部,2、固定中间按钮。...我选择固定中间按钮,使用动态绑定样式让中间部分的高度等于页面高度-底部和顶部的高度,设置overflo为scroll; 在accounting.component.ts中添加样式数据如下: contentStyle...这里写图片描述 引用非样式的组件 例如提示框组件 html中添加元素 ts文件中引入使用

    3.3K20

    浏览器是如何进行页面渲染的

    当数据和渲染器进程都准备好后,HTML 数据通过 IPC 从浏览器进程传递到渲染器进程中。渲染器进程接收 HTML 数据后,将开始加载资源并渲染页面。...其中,上述过程中的步骤 5 便是页面的渲染部分,该过程同样依赖渲染器进程,我们一起来看看。2....布局通过解析之后,渲染器进程知道每个节点的结构和样式,但如果需要渲染页面,浏览器还需要进行布局,布局过程其实便是我们常说的渲染树的创建过程。...其中,全局样式更改会触发全局布局,部分样式或元素更改会触发增量布局,增量布局是异步完成的,全局布局则会同步触发。重排需要涉及变更的所有的结点几何尺寸和位置,成本比重绘的成本高得多的多。...光栅化通过解析、布局和绘制过程,浏览器获得了文档的结构、每个元素的样式、绘制顺序等信息。将这些信息转换为屏幕上的像素,这个过程被称为光栅化。

    1.3K40

    现代浏览器探秘(part3):渲染

    渲染器进程的核心工作是将HTML、CSS和JavaScript转换为用户可以与之交互的网页。 ?...图1:渲染器进程内部有主线程、工作线程、排版线程和栅格线程 解析 构建DOM 当渲染器进程收到导航的提交消息并开始接收HTML数据时,主线程开始解析文本字符串(HTML)并将其转换为文档对象模型(DOM—Document...比如 标签的显示要大于2>标签,同时为每个元素定义边距。 这是因为浏览器具有默认样式表。...布局 现在,渲染器进程知道每个节点的文档和样式的结构,但这还不足以呈现页面。...图4:一个人站在一幅画,通过电话线与另一个人联系 布局是查找元素几何的过程。 主线程遍历DOM并计算样式和创建布局树,其中包含x y坐标和边界框大小等信息。

    1.9K10

    HTMLCSSJS 是如何在浏览器中,渲染成你看到的页面?【图解Chrome】

    渲染器进程的核心工作是将 HTML,CSS 和 JavaScript 转换为用户可以与之交互的网页。...[image.png] 上图中,主线程解析 CSS 并添加渲染样式。 即使你不使用任何 CSS 样式,每个 DOM 节点依然存在默认的渲染样式。...例如, h1 标签在视觉上就大于 h2 标签,并且每个元素还有默认的边距。这是因为浏览器具有默认样式表。 如果你对 Chrome 的默认 CSS 是什么样的有兴趣,可以在源码中看到具体细节。...(Layout) 到现在,渲染器进程知道每个 DOM 的结构和样式了,但是这依然不足以渲染页面。...现在浏览器知道文档的结构,每个元素的样式,页面的形状和绘制顺序,它是如何绘制页面的?将此信息转换为屏幕上的像素称为光栅化(rasterizing)。

    5.6K50

    高颜值 tailwindcss 后台模板分享

    这个免费的 tailwindCSS 模板带有预构建的示例,因此开发过程是无缝的,从原型页面切换到真实网站非常容易完成。 它的每个元素都有颜色、样式、悬停、焦点的多种状态,您都可以轻松访问和使用。...Notus NextJS Notus NextJS 是免费和开源的。它具有多个 HTML 和 NextJS 元素,并带有 NextJS 的动态组件。...它具有多个 HTML 和 VueJS 元素,并带有 VueJS 的动态组件。...它具有多个 HTML 和 Angular 元素,并带有 Angular 的动态组件。 它基于创意蒂姆的 Tailwind Starter Kit,它由演示页面和管理仪表板页面构建。...它基于 tailwind2 构建,提供了丰富的 UI 组件,并且还提供了各种图表样式,支持多种布局,你可以通过线上案例来体验它的真实感受。

    4.1K30

    像素是怎样练成的

    Browser Process驱动的「子进程」 渲染器使用Blink开源布局引擎来解释和布局HTML。...也就是在上面架构图中的content ❞ 常见的类型包括文本、图像、HTML元素(包围文本的标记语言)、CSS(定义HTML元素的表现方式)和JavaScript(可以「动态修改上述所有内容」)。...开发人员可以使用JavaScript或其他支持DOM的编程语言来访问和操作DOM。 ❝通过DOM,我们可以「动态地创建、修改、删除和查询文档的元素和内容,从而实现动态的Web页面交互和数据操作」。...这样,每个元素都会根据匹配的CSS规则来设置其样式属性,从而实现页面的外观和布局。 ❞ 通过处理CSS样式,我们可以为网页提供丰富的外观效果、布局和交互特性,使网页更加美观和易于使用。...element.style: 这是一个属性,用于获取或设置元素的内联样式(inline style)。 可以通过element.style来访问和修改元素的样式属性。

    1.3K20

    Angualr2 之 angular模块Angular 模块化提供服务特性模块 - 业务上的最佳实践(n)共享模块XxxModule.forRoot配置核心服务知识点

    @NgModule接收一个元数据对象,该对象告诉 Angular 如何编译和运行模块代码。 它标记出该模块拥有的组件、指令和管道, 并把它们的一部分公开出去,以便外部组件使用它们。...它可以向应用的依赖注入器中添加服务提供商。 Angular 模块化 模块是组织应用程序和使用使用外部程序库的最佳途径。 很多Angular库都是模块,e.g.... Angular模块是由一个@NgModule装饰器提供元数据的类,元数据包括: 1-导入其他模块 2-声明哪些组件、指令、管道属于该模块 3-公开某些类,以便其他的组件模块可以使用它们...4-在应用程序级提供服务,以便应用中的任何组件都能使用它。...ionic的样式 imports: [ CommonModule, IonicModule, ], // 2- 这里声明了这3个组件属于该模块 declarations:

    3K30

    angularJS的DOM操作

    是不建议和JQuery同时使用的,所以AngularJs给我们也提供了一些操作DOM的方法———Jqlite       查阅官方提供的api,可以看到使用方法是angular.element(ele)...'); }]); html> 二.引用jQuery 引用jQuery的前提下,和$用法基本相同:angular.element(‘#‘).html...("#span2").removeClass('test2'); }]); html> 注意:一旦在div使用ng-app(如ng-app="myApp...,选择器选择性筛选 clone()-创建一个匹配的元素集合的深度拷贝副本 contents()-获得匹配元素集合中每个元素的子元素,包括文字和注释节点 css() - 获取匹配元素集合中的第一个元素的样式属性的值...find() - 通过一个选择器,jQuery对象,或元素过滤,得到当前匹配的元素集合中每个元素的后代 hasClass()-确定任何一个匹配元素是否有被分配给定的(样式)类 html()-获取集合中第一个匹配元素的

    1.5K10

    浏览器底层工作那些事儿

    首选它获取到请求到的内容,然后开始解析 html 结构,将它们转换成 dom 树,然后渲染引擎解析 css 样式,生成一个 css 树,最后,根据样式信息和 html 结构生成 render 树,我们称之为渲染树...html 文档格式是 DTD,它是一个上下文无关的文档格式。它更加宽容,可以省略一些标记,因此解析器处理起来会很复杂。 dom 树是由 dom 元素和属性构成的树形结构。...这是通过计算每个元素的样式特性来完成的。该样式包括各种来源的样式表,内联样式和 html 中的视觉属性。...布局是一个递归过程,它从根渲染器开始,根据层次结构递归的遍历每个渲染器,然后计算它们的集合信息,最后布局它们。 布局分为全量布局和增量布局。...所谓全量布局指的就是会影响所有渲染器的全局样式改变,比如字体改变。而增量布局指的是布局是异步完成的,渲染器通过触发器进行布局。 css 主要是通过盒子模型来布局。

    74520
    领券