angular2省市县三级联动,封装组件,使用@Output()传递给父组件

发布时间:2019-06-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了angular2省市县三级联动,封装组件,使用@Output()传递给父组件脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

图片描述

再讲之前先讲一下父组件获取子组件的数据@Output()

A: 子组件需要做的工作

1. 引入Output和EventEmitter

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

2. 定义输出方法,provinceOut将在父组件中使用子组件标签的时候调用(后解)

@Output() provinceOut = new EventEmitter();

3. 单机模板中绑定的事件的时候发射变量到父组件 

provinceChange() {
    // 选择省份的时候发射省份给父组件
    this.provinceOut.emit(this.province);
}

B: 父组件要做的工作

1. 父组件模板中,调用子组件标签,绑定子组件中output的事件

<child-page (provinceOut)="recPro($event)"></child-page>
(provinceOut:子组件中@Output()定义的变量, recPro(#event)父组件中定义一个函数,调用这个函数,获取子组件传递过来的数据)

2. 父组件

// 函数接受子函数传递过来的变量
recPro(event) {
  this.province = event;
}

下面开始讲解三级联动组件,省市县数据使用node(express)提供,使用jsonp跨域获取数据,后端代码就不多说了,简单的增删改查

1、子组件 three-link.component.ts