Angular应用

组件 Components

带有 @Component() 装饰器的 TypeScript 类

@Component() 装饰器: * CSS 选择器 (‘app-‘+组件名称) * HTML 模板 * 一组可选的 CSS 样式

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html'
})
export class AppComponent { }

@input() 装饰器:

用来把某个类字段标记为输入属性,并提供配置元数据。 当变更检测时,Angular 会自动使用这个 DOM 属性的值来更新此数据属性。

模板 Templates

  • 双花括号:插入动态值
//app.component.html
<p>{{ message }}</p>
//app.component.ts
export class HelloWorldInterpolationComponent {
    message = 'Hello, World!';
}
  • 方括号:属性绑定
<p
  [id]="sayHelloId"
  [style.color]="fontColor">
  You can set my color in the component!
</p>
  • 圆括号:事件监听器
//app.component.html
<button
  [disabled]="canClick"
  (click)="sayMessage()">
  Trigger alert message
</button>
//app.component.ts
export class HelloWorldBindingsComponent {
  canClick = false;
  message = 'Hello, World';

  sayMessage() {
    alert(this.message);
  }

}
  • 指令directives:ngIf,ngFor
<div *ngIf="canEdit; else noEdit">
  <p>You can edit the following paragraph.</p>
</div>

依赖注入 Dependency injection

声明 TypeScript 类的依赖项

// logger.service.ts
import { Injectable } from '@angular/core';

@Injectable({providedIn: 'root'})
export class Logger {
  writeCount(count: number) {
    console.warn(count);
  }
}
//app.component.ts
import { Logger } from '../logger.service';

export class HelloWorldDependencyInjectionComponent  {
  constructor(private logger: Logger) { }
  onLogMe() {
    this.logger.writeCount(this.count);
  }
}
Article
Tagcloud
DVA Java Express Architecture Azure CI/CD database ML AWS ETL nest sql AntV Next Deep Learning Flutter TypeScript Angular DevTools Microsoft egg Tableau SAP Token Regexp Unit test Nginx nodeJS sails wechat Jmeter HTML2Canvas Swift Jenkins JS event GTM Algorithm Echarts React-Admin Rest React hook Flux Redux ES6 Route Component Ref AJAX Form JSX Virtual Dom Javascript CSS design pattern