angular 定义对象_Angular 中的可观察对象

本文详细介绍了Angular中如何使用可观察对象处理异步操作,包括EventEmitter、HTTP、Async管道、路由器和响应式表单的应用。通过实例展示了如何在组件间传递数据、进行HTTP请求、使用AsyncPipe以及响应式表单的可观察属性。
摘要由CSDN通过智能技术生成

e816041b5140b8202dc35835d9312a26.png

Angular 使用可观察对象作为处理各种常用异步操作的接口。比如:

  • EventEmitter 类派生自 Observable
  • HTTP 模块使用可观察对象来处理 AJAX 请求和响应。
  • 路由器和表单模块使用可观察对象来监听对用户输入事件的响应。

EventEmitter

Angular 提供了一个 EventEmitter 类,它用来通过组件的 @Output() 装饰器 发送一些值。EventEmitter 扩展了 RxJS Subject,并添加了一个 emit() 方法,这样它就可以发送任意值了。当你调用 emit() 时,就会把所发送的值传给订阅上来的观察者的 next() 方法。 我们来查看一下该类的定义:

export declare class EventEmitter<T extends any> extends Subject<T> {
    /**
     * Creates an instance of this class that can
     * deliver events synchronously or asynchronously.
     *
     * @param isAsync When true, deliver events asynchronously.
     *
     */
    constructor(isAsync?: boolean);
    /**
     * 发出包含给定值的事件。
     */
    emit(value?: T): void;
    /**
     *注册此实例发出的事件的处理程序。
     */
    subscribe(generatorOrNext?: any, error?: any, complete?: any): Subscription;
}

EventEmitter 与指令@Output 一起在组件中使用以同步或异步方式发送自定义事件,并通过订阅实例来注册这些事件的处理程序。

接下来我们演示一个案例,在组件之间传递数据。

子组件 zippy.component.ts

import { Component, OnInit, Output, EventEmitter } from '@angular/core';


@Component({
  selector: 'app-zippy',
  templateUrl: '
    <div class="zippy">
      <div (click)="toggle()">点击该文本</div>
      <div [hidden]="visible">
        <ng-content></ng-content>
      </div>
    </div>
  '
})
export class ZippyComponent implements OnInit {
  visible = true;
  // 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值