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

Angular Material 的设计之美

这也是我刚开始不敢选择 Angular Material 的一个原因。...另外,Angular Material 的样式是基于 Sass 编写,而我最喜欢的也是 Sass,所以基于 Angular Material 编写 ng-matero 就是宿命的选择。...$mat-gray: $mat-grey; 灵活的主题定制 Angular Material 的样式几乎全部写在了 mixin ,定制起来非常容易。...我最开始认为将所有样式全部写到 mixin 并不是很优雅的做法,但是在编写 ng-matero 暗黑主题的时候,我发现这样做是不行的。以下是 Angular Material 主题定制的方法。...如果只作为 DEMO 展示是没问题的,但是生产环境推荐这样做。 ng-matero 使用 ng add 初始化的时候增加了预构建主题选项,生成的主题只有一份,如果有特殊需求可以自行定制。

5K30

Angular DOM 抽象概述

ElementRef 日常工作,Web 工程师经常需要跟 DOM 打交道。...模板元素是一种机制,允许包含加载页面时渲染,但又可以随后通过 JavaScript 进行实例化的客户端内容。我们可以将模板视作为存储页面上稍后使用的一小段内容。...ViewRef ViewRef 是一种抽象类型,用于表示 Angular 视图。 Angular ,视图是构建应用程序 UI 界面基础构建块。...对于列表声明的每个组件,Angular 将会创建对应的一个 ComponentFactory 对象,并将其存储 ComponentFactoryResolver 对象。...实际工作,还需要利用 ViewChild、ViewChildren、ContentChild 和 ContentChildren 装饰器,或者基于 Angular 依赖注入特性,通过构造注入的方式,获取相关的对象

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

Ng-Matero v15 正式发布

具体效果如下图所示: 在线体验地址 焦点管理属于 a11y 的范畴,使用 Angular Material 可以很轻松的完成 a11y 的需求,同时 Angular CDK 也有 A11yModule...另外,侧边栏菜单按钮使用语义化标签进行了优化,关于按钮的选择可以参考 Angular Material Button 文档的说明: Angular Material 使用原生的 ...大部分组件都切换到了 MDC 风格,之前这些组件都是 material-experimental 这个库,现在转正了,而之前的组件都加上了 legacy- 前缀。...再就是 card 组件,必须配合 mat-card-content 才会出现边距,如果用到的 card 组件很多,这块的工作量也挺大的。...如果项目中有对 Material 样式的魔改,大部分的样式需要将 class 前缀 .mat- 替换成 .mat-mdc-。

5.4K40

ng-content 隐藏的内容

如果你尝试 Angular 编写可重复使用的组件,则可能会接触到内容投射的概念。然后你发现了 ,并找到了一些关于它的文章,进而实现了所需的功能。...简单示例 本文中我们使用一个示例,来演示不同的方式实现内容投影。...Time to poke and prod 我们从一个简单的实验开始:将两个 块放在我们的模板,没有选择器。会出现什么情况?...我们尝试解释为什么之前,让我们再来验证一个问题,即在 ng-content 指令的外层容器添加 ngIf 指令: import { Component } from '@angular/core';...我们需要使用 @ContentChild 访问模板,并使用ngTemplateOutlet 来显示它: @Component({ selector: 'wrapper', template: `

2.7K30

Ng-Matero V10 正式发布!

Angular v10 六月下旬就悄无声息的发布了,虽然 v9 的发布延期了两个月,但是 v10 并没有受影响,仍然如期而至。...再来说一下 Angular Material, v10 有一个非常大的变化,就是增加了 datepicker 的区间选择功能,不用多说,这是一个极其实用的功能。...其实 v10 版本除了将 AngularAngular Material 升级之外,主要是调整了 schematics ng add 的兼容问题,其它代码和 v9 最新版是一样的。...前期的工作主要是完善 v9 的版本。 本文主要说一下 Ng-Matero 以及 Material Extensions 几个关键的优化点。...在线示例:https://ng-matero.github.io/ng-matero/#/forms/dynamic 主题化 主题化的内容可以说很多,暂时展开讲,简单说一下 Material Extensions

1.4K10

Angular 10 正式发布,不再支持 IE910!

新版内容 新的日期范围选择Angular Material 现在提供了一个新的日期范围选择器。 ?...新的日期范围选择器 可以通过 mat-date-range-input 和 mat-date-range-picker 组件使用它。...CommonJS 或 AMD 依赖项可能导致优化 bailout 可选的更严格设置 当你使用 ng new 创建新的工作区时,v10 提供了一个更严格的项目设置选项。...要为需要它的浏览器(例如 IE 或 UC 浏览器)启用 ES5 构建和差异化加载,只需.browserslistrc 文件添加你要支持的浏览器即可。...在过去的三周,我们框架、工具和组件的未解决问题数量减少了 700 多个。我们已解决了 2,000 多个问题,并计划在接下来的几个月中投入大量资源,与社区合作做更多事情。

2.5K20

浅谈 Checkbox Group 的双向数据绑定

实际工作中发现很多组件库关于 checkbox-group 的双向绑定一直很别扭,或者说多多少少都有一些瑕疵。 开始本文之前,我们先假定有如下需求: ? 数据列表和输出值都是对象数组。...能否只用一个双向绑定就完成数据的输入输出,而不是得到绑定的数据之后再使用数组的 filter、map 这些方法去过滤和筛选。...那到底应该怎样设计 checkbox-group 的双向数据绑定才能更灵活的使用呢? 如何设计 Checkbox Group 介绍如何设计之前,我们先尝试能否从其它组件设计中找到灵感。...大多数情况下两者可以相互替换,所以很多人总是困惑两种组件到底应该如何选择。这里 有篇文章 专门对比了两种组件的交互场景,甚至使用 A/B test 去分析用户的偏好。...总结 这篇文章拖沓了非常久,一方面是自己工作很忙,另一方面做开源项目占据了大部分时间。

2K10

ionic3升级适配angular5

首次支持angular5的ionic3版本 然后再看下angular5的版本,同样发布了两个版本,一个是普通稳定版,一个是beta版,其中前者如图所示修复了几个bug,那若升级,当然选择普通稳定版比较好...angular5的最新beta版 ionic3官网建议是更新依赖到angular5.0.0版本,而根据上述说明,优先选择做了做了bug修复的angular5.0.1版。...: NgTemplateOutlet#ngOutletContextv4版本被弃用,使用NgTemplateOutlet#ngTemplateOutletContext代替; core: ErrorHandler...本项目中,因为没有用到那几个内置管道,也没有用到路由,所以主要是调整Http模块: 4.xHttpClient模块被封装在@angular/common,新的HttpClient被封装在@angular.../common/http,更新Http模块后,需要使用HttpClientModule替换原有HttpModule,并在使用http服务时,可以去掉map(res=>res.json())的调用,因为新模块已经不再需要了

2.5K40

AngularDart Material Design 应用布局 顶

要在Angular组件中使用这些样式,只需将其添加为Component注解的styleUrls值即可。 建议在任何特定于组件的样式之前添加样式,以便您可以根据需要轻松覆盖样式值。...要使用临时抽屉,请将temporary属性添加到material-drawer元素,并将MaterialTemporaryDrawerComponent添加到父级的指令列表。.... --> 应用栏和抽屉交互 应用栏和抽屉协同工作,为应用程序提供全面的应用布局。应用栏可以存在于material-content之内或之外。... 由于样式封装,如果列表内容不是直接在抽屉(也就是说,它包含在另一个组件),则必须使用mixin提供上面的样式。...需要在包含组件的styleUrls列表包含packages:angular_components/app_layout / layout.scss.css。 适用于延期内容。

4K30

Angular,父组件向子组件传递 “模版内容引用”

专门研究一下ngTemplateOutlet用法!!!! 我遇到的情况,有两种时候会用到ngTemplateOutlet。 1、需要要自定义标题或页脚的内容。 ...比如弹窗组件不能在自己的内容写死标题和页面的内容,        页面上使用该组件时, 页面 动态向指定组件内占位传入“一些内容”,组件会把它们插入到它想要的地方!    ...的变量接收) 3、子组件如何使用这个引用变量( 模版,用ngTemplateOutlet  绑定这个变量即可) 4、引用元素从主页面上来,  如何把子组件的数据(即子组件中上下文)传递给这个引用元素上来...组件为了灵活,一部分内容定义组件之外的(即主页面上),当它插入到子组件的时候,必然要显示子组件内的一些数据,它才有意义。...ngTemplateOutlet 不仅用于绑定元素,还负责把子组件的一个数据上下文传递进去. 5、模板元素如何使用上下文?

2.8K20

高级 Angular 组件模式 (6)

06 Use 原文: Use Render Props最近在React社区引起了轰动,但是与之类似的模式Angular似乎并没有得到太多关注...我之前写的文章提及过,TemplateRefs就是Angular的Render Props,同时我会在这篇文章列举一个简单易用的例子。...let关键字的使用方式类是这样的:let-templatevar="inputvar",templatevar指代标签,关联组件状态值的变量名,而inputvar指代使用<...除了上面的解决方法,就是使用正文中所提及的模式了,这种模式将子组件视图的渲染逻辑倒置为子组件仅仅声明模板中所会使用的状态变量,对于这些变量和模板的注入工作,全权赋予父组件,因此会使子组件的复用性和可测试性大大提高...正文中仅列举了一个简单的例子,我这里简单提及一个实际工作可能会用到的例子,就是表单校验的错误提示组件,一般前端组件设计但凡涉及表单,都会是十分复杂的,更不用说校验这种灵活性很高的功能了。

1.1K20

使用Angular8和百度地图api开发《旅游清单》

我们将收获: Angular8基本用法,架构 使用百度地图API实现自己的地图应用 解决调用百度地图API时的跨域问题 对localStorage进行基础封装,进行数据持久化 material...安装脚手架: npm install -g @angular/cli 复制代码 创建工作空间和初始应用 ng new my-app 复制代码 安装material UI npm install @angular...至此,项目的基本准备工作已经做好了,下面让我们先聊一聊angular。...class Storage {} ``` 复制代码 路由 Angular 的 Router 模块提供了一个服务,它可以让你定义应用的各个不同状态和视图层次结构之间导航时要使用的路径。...引入: // material组件库 import { CustomMaterialModule } from '.

6K30

Angular 5.0.0发布!

TypeScript转换 现在,Angular编译器底层的工作机制是TypeScript转换,从而让递增式重新构建快了很多。...保留空白 过去编译器会忠实地复现并在模板包含制表符、换行符和空白。现在你可选择是否组件和应用包含空白了。 可以每个组件的装饰器中指定这个配置,而当前的默认值为true。...以前版本的Angular,我们一直依赖浏览器及其i18n API提供数值、日期和货币格式。为此,很多开发者都在使用腻子脚本(polyfill),而结果也不好。...exportAs 组件和指令增加了对多名称的支持。这有助于用户实现无痛迁移。通过把指令导出为多个名称,可以破坏原有代码的情况下在Angular语法中使用新名称。...Angular Material项目已经在其前缀迁移项目中用上了,对其他组件作者肯定也有用。

4.4K40

高级 Angular 组件模式 (6)

06 Use 原文: Use Render Props最近在React社区引起了轰动,但是与之类似的模式Angular似乎并没有得到太多关注...我之前写的文章提及过,TemplateRefs就是Angular的Render Props,同时我会在这篇文章列举一个简单易用的例子。...let关键字的使用方式类是这样的:let-templatevar="inputvar",templatevar指代标签,关联组件状态值的变量名,而inputvar指代使用<...除了上面的解决方法,就是使用正文中所提及的模式了,这种模式将子组件视图的渲染逻辑倒置为子组件仅仅声明模板中所会使用的状态变量,对于这些变量和模板的注入工作,全权赋予父组件,因此会使子组件的复用性和可测试性大大提高...正文中仅列举了一个简单的例子,我这里简单提及一个实际工作可能会用到的例子,就是表单校验的错误提示组件,一般前端组件设计但凡涉及表单,都会是十分复杂的,更不用说校验这种灵活性很高的功能了。

81910

Angular开发实践(八): 使用ng-content进行组件内容投射

Angular,组件属于特殊的指令,它的特殊之处在于它有自己的模板(html)和样式(css)。因此使用组件可以使我们的代码具有强解耦、可复用、易扩展等特性。...该属性支持 CSS 选择器(标签选择器、类选择器、属性选择器、…)来匹配你想要的内容。... “产生”内容 做个试验 做个试验,先定义一个 demo-child-component 组件: import { Component, OnInit } from '@angular...因为 ng-content 只是移动元素,所以可以在编译时完成,而不是在运行时,这大大减少了实际应用程序的工作量。...解决方法 为了让组件能够控制投射进来的子组件的实例化,我们可以通过两种方式完成:我们的内容周围使用 元素及 ngTemplateOutlet,或者使用带有 "*" 语法的结构指令

2.9K81

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

---- 前言 这一篇我们带来的是关于组件基础使用的最后一块,内容投影和Vue的插槽很类似,组件封装的时候非常有用,我们一起来体验一下。 正文 1....在这种情况下,建议使用 ng-content 元素,因为只要组件的使用者提供了内容,即使该组件从未定义 ng-content 元素或该 ng-content 元素位于 ngIf 语句的内部,该内容也总会被初始化...使用 ng-template 元素,你可以让组件根据你想要的任何条件显式渲染内容,并可以进行多次渲染。显式渲染 ng-template 元素之前,Angular 不会初始化该元素的内容。...使用ng-container定义我们的投影区块 使用ngTemplateOutlet指令来渲染ng-template元素。 通过内置的动态指令*ngIf来控制是否渲染投影。...this.app.expanded; } constructor(public app: PageContainerComponent) {} } 我们的容器组件申明刚才定义的内容指令,页面目前不报错咯

52530

Angular 11正式发布:加入webpack 5,升级至TS 4.0,不再支持IE 9 和10

在编译时,Angular CLI 将下载和内联在应用程序中使用和链接的字体。我们会在使用版本 11 构建的应用默认启用此功能。要利用这一优化,你需要做的就是更新自己的应用!...它为开发人员提供了一种测试过程中使用受支持的 API 与 Angular Material 组件交互的方法。 随着版本 11 的发布,我们为所有组件都加上了测试带!...版本 11 我们更新了 CLI,允许开发人员使用 ng serve 启动应用程序时启用 HMR。...实验性 Webpack 5 支持 现在,团队可以选择加入 Webpack v5 了。当前,你可以使用模块联邦这一实验特性。...这也反映了我们所使用的方法,通过这种方法我们可以逐步推进更多工作,并允许开发人员提供早期反馈,使我们能将这些反馈引入最终版本

3.3K30
领券