📜  Angular 4-示例(1)

📅  最后修改于: 2023-12-03 15:29:23.208000             🧑  作者: Mango

Angular 4-示例

Angular 4是一款流行的JavaScript框架,可用于开发Web应用程序。它具有模块化架构、强大的依赖注入、组件化和数据绑定等特性,能够提高Web应用程序的开发效率和性能。以下是一些Angular 4示例,用于帮助程序员更好地理解和应用Angular 4。

祖先组件和子组件之间的通讯

在Angular 4中,祖先组件和子组件之间可以通过@Input()和@Output()装饰器实现通信。如下所示,假设有一个父组件parent.component.ts和子组件child.component.ts,可以使用@Input()向子组件传递数据,使用@Output()向父组件传递数据。

// parent.component.ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-parent',
  template: `
    <h1>Parent Component</h1>
    <app-child [childProp]="parentProp" (childEvent)="parentEventHandler($event)"></app-child>
  `
})
export class ParentComponent {
  parentProp = 'Parent property';

  parentEventHandler(data) {
    console.log(data);
  }
}

// child.component.ts
import { Component, Input, Output, EventEmitter } from '@angular/core';

@Component({
  selector: 'app-child',
  template: `
    <h2>Child Component</h2>
    <p>{{childProp}}</p>
    <button (click)="childEventHandler()">Click me!</button>
  `
})
export class ChildComponent {
  @Input() childProp: string;
  @Output() childEvent: EventEmitter<string> = new EventEmitter<string>();

  childEventHandler() {
    this.childEvent.emit('Child event emitted!');
  }
}
服务

在Angular 4中,服务是一种用于共享数据和方法的方式。服务通过@Injectable()装饰器注入到组件中,并能够与其他组件共享数据和方法。如下所示,假设有一个服务my.service.ts和一个组件my.component.ts,可以使用注入器@Inject()将服务注入到组件中并调用其方法。

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

@Injectable()
export class MyService {
  data = 'Shared data';

  getData() {
    return this.data;
  }
}

// my.component.ts
import { Component, Inject } from '@angular/core';
import { MyService } from './my.service';

@Component({
  selector: 'app-my',
  template: `
    <h1>My Component</h1>
    <p>Data: {{data}}</p>
  `
})
export class MyComponent {
  constructor(@Inject(MyService) private myService: MyService) { }

  get data() {
    return this.myService.getData();
  }
}
表单验证

在Angular 4中,表单验证是一种用于确保用户输入的方案。可以使用自定义验证器和Angular 4内置的验证器来验证用户输入。如下所示,假设有一个组件my-form.component.ts,可以使用FormGroup和FormControl构建表单并进行验证。

// my-form.component.ts
import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators } from '@angular/forms';

@Component({
  selector: 'app-my-form',
  template: `
    <h1>My Form Component</h1>

    <form [formGroup]="myForm" (ngSubmit)="onSubmit()">
      <label>Name:</label>
      <input type="text" formControlName="name" />

      <label>Email:</label>
      <input type="email" formControlName="email" />

      <button type="submit" [disabled]="!myForm.valid">Submit</button>
    </form>

    <p *ngIf="myForm.controls.name.errors?.required">Name is required.</p>
    <p *ngIf="myForm.controls.email.errors?.required">Email is required.</p>
    <p *ngIf="myForm.controls.email.errors?.email">Email is not valid.</p>
  `
})
export class MyFormComponent {
  myForm: FormGroup;

  constructor() {
    this.myForm = new FormGroup({
      name: new FormControl('', Validators.required),
      email: new FormControl('', [Validators.required, Validators.email])
    });
  }

  onSubmit() {
    console.log('Form submitted');
  }
}
总结

Angular 4是一款强大的JavaScript框架,可以帮助开发人员创建Web应用程序。通过上述示例,程序员可以更好地了解和应用Angular 4中的祖先组件和子组件之间的通讯、服务、表单验证等特性,提高Web应用程序的开发效率和性能。