美文网首页ng2Angular.js专场
Angularjs2-下拉列表实现(父子组件通信)

Angularjs2-下拉列表实现(父子组件通信)

作者: Aaaaaaaaaaayou | 来源:发表于2016-09-13 10:59 被阅读282次

基于http://valor-software.com/ng2-bootstrap/#/dropdowns 做的一个下拉列表控件,优化了如下功能,项目地址

  • 列表内容由父组件传递
  • 子组件选择框发生变化后会通知父组件

demo

demo-new.gif

列表内容由父组件传递

这个主要利用到了ng2的Input,在子组件中声明一个变量,该变量的值可以从父组件获取:

import { Component,Input,Output,EventEmitter } from '@angular/core';
...
// 父组件传递进来的参数
@Input('list') private list:any;
...

父组件中,可以这样传值:

<my-drop-down-cmp [list]='list'></my-drop-down-cmp>

子组件选择框发生变化后会通知父组件

实现这个用到了ng2的Output,声明一个EventEmit的对象,用于向父组件发送消息

// 当改变了选择时给父组件发送事件
@Output('selectChange') private selectChange = new EventEmitter();
...
// 当点击了下拉列表中的某一项
public changeSelect(id: any,text: any,i: any) {
  this.text = text;
  this.id = id;
  // 发送事件
  this._selectChange.emit({id:id,text:text,index:i})
}

父组件中,通过如下方式接收事件:

<my-drop-down-cmp (_selectChange)='onChangeSelect($event)'></my-drop-down-cmp>
...
// 事件处理函数
onChangeSelect(e:any) {
  this.selectId = e.id;
}

欢迎访问我的博客

相关文章

  • Angularjs2-下拉列表实现(父子组件通信)

    基于http://valor-software.com/ng2-bootstrap/#/dropdowns 做的一...

  • React父子组件间通信的实现方式

    React学习笔记之父子组件间通信的实现:今天弄清楚了父子组件间通信是怎么实现的。父组件向子组件通信是通过向子组件...

  • 2018-05-23 (表严肃)笔记二

    二、组件 全局及局部组件 配置组件点赞的实现: 组件通信之父子通信(1) 父子通信 props: 在当前页面中点击...

  • vue中的组件通信

    一、组件通信(组件传值) 1.1父子组件通信 1.2子父组件通信 1.3非父子组件通信(兄弟组件通信)

  • 组件通信

    组件关系 组件关系可以分为父子组件通信、兄弟组件通信、跨级组件通信。 父子组件通信 1. 子组件使用 $emit(...

  • Vue基础

    如何实现组件通信 父子通信 props & emit v-model sync children 兄弟通信 thi...

  • Vue入门-实现一个简陋的todolist

    Vue中通过props和$emit实现父子组件的通信。

  • Vue如何实现组件通信?

    Vue组件通信的三种情况: 父子通信 爷孙通信 兄弟通信 父子通信:父组件使用Prop向子组件传递数据,子组件通过...

  • Vue 常见 API 及问题

    组件通信 父子组件通信通过 props 和 $emit 相信小伙伴们都清楚,那么毫无关联的两个组件如果需要实现通信...

  • [Vue]组件之间如何通信?

    组件通信可以大致分为两种情况,父子组件之间的通信和非父子组件之间的通信,下面来分别介绍 一、父子组件之间的通信 1...

网友评论

    本文标题:Angularjs2-下拉列表实现(父子组件通信)

    本文链接:https://www.haomeiwen.com/subject/lzdmettx.html