[Angular] Angular CDK Intro
1. Installl latest @angular/cli:
sudo npm i -g @angular/cli@next
The version I used is:6.0.0-rc.10
2. Create a new application:
ng new cdk-demo --routing
3. Install material and cdk packages:
Here need to add @next, because by the time I tried the application, v6 angular is not released yet.
npm install --save @angular/material@next @angular/cdk@next
4. Using 'ng add' to add material to the application:
ng add @angular/material
This command did some changes to the project, add some necessary code and files, which makes the whole process lot easier.
5. Update some code:
app.module.ts:
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { MatCheckboxModule } from '@angular/material'; // <-- added @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, AppRoutingModule, BrowserAnimationsModule, MatCheckboxModule, // <-- added ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
app.component.html:
<mat-checkbox>Toggle</mat-checkbox>
Then you should be able to see a toggle element on the page.
The progress was much better than before.
But even more awesome stuff is the following.
6. Genearte a material based component by using cli:
ng g @angular/material:materialNav --name=main-nav
Then just use it in the app.component.html:
<main-nav></main-nav>
We can also do:
ng g @angular/material:material-table --name=main-table
ng g @angular/material:material-dashboard --name=main-dash
Then use it inside the main-nav we have just created:<mat-sidenav-container class="sidenav-container">
<mat-sidenav #drawer class="sidenav" fixedInViewport="true" [attr.role]="isHandset ? 'dialog' : 'navigation'" [mode]="(isHandset | async)!.matches ? 'over' : 'side'" [opened]="!(isHandset | async)!.matches"> <mat-toolbar color="primary">Menu</mat-toolbar> <mat-nav-list> <a mat-list-item href="#">Link 1</a> <a mat-list-item href="#">Link 2</a> <a mat-list-item href="#">Link 3</a> </mat-nav-list> </mat-sidenav> <mat-sidenav-content> <mat-toolbar color="primary"> <button type="button" aria-label="Toggle sidenav" mat-icon-button (click)="drawer.toggle()" *ngIf="(isHandset | async)!.matches"> <mat-icon aria-label="Side nav toggle icon">menu</mat-icon> </button> <span>Application Title</span> </mat-toolbar> <main-dash></main-dash> <!-- added -->
</mat-sidenav-content> </mat-sidenav-container>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2017-05-03 [CSS] Showing horizontal scrollbar always for the table
2017-05-03 [Angular Unit Testing] Testing Component methods
2017-05-03 [Angular Unit Testing] Testing Services with dependencies
2016-05-03 [Flexbox] Using order to rearrange flexbox children