Angular系列学习三:父子组件之间的交互(常见的组件通讯场景)

news/2024/11/9 16:35:38 标签: javascript

作者:心叶
时间:2018-07-24 16:48:56

通过输入型绑定把数据从父组件传到子组件

通过@Input()可以实现父组件传递数据给子组件,下面先看看子组件代码:

import { Component, Input } from '@angular/core';
            
@Component({

    selector: 'child-comp',

    template: `
        <section>
            <header>{{title}}</header>
            <p>{{message}}</p>
        </section>
    `

})
export class ChildComponent {

    @Input() title: string;

    @Input('msg') message: string;

}

其中@Input('msg')是为message定义了别名,接着,在父组件中通过属性就可以传递值进来了:

<child-comp title="数据传递" msg="这是数据传递演示"></child-comp>

父组件通过监听子组件的事件获取子组件传递的数据

子组件传递数据给父组件是通过emit的方式,先看一下子组件代码:

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

    selector: 'child-comp',

    template: '<button (click)="doit(\'来自子组件的数据\')">按钮</button>'

})
export class ChildComponent {

    @Output() onDoit = new EventEmitter<string>();
                
    doit(info: string) {

        this.onDoit.emit(info);

    }
}

通过@Output()触发父组件里面定义的onDoit事件,因此,需要在父组件中注册事件处理方法:

<child-comp (onDoit)="getInfo($event)"></child-comp>

getInfo是定义的一个方法,$event就是子组件传递的数据,点击子组件的按钮就会触发这个方法(弹出一句话),方法代码如下:

......
    
    getInfo(info:string){
        alert(info);
    }

......  

http://www.niftyadmin.cn/n/976002.html

相关文章

map按照value排序的方法

1.将map以pair(string,double)的存储方式加入vector中 2.vector的sort()中的第三个参数重载 #typedef pair<string,double> PAIR struct CmpByValue { bool operator()(const PAIR& lhs, const PAIR& rhs) { return lhs.second < rhs.second; } }; map<QS…

python基础学习笔记(六)

学到这里已经很不耐烦了&#xff0c;前面的数据结构什么的看起来都挺好&#xff0c;但还是没法用它们做什么实际的事。 基本语句的更多用法 使用逗号输出 >>> print age:,25 age: 25 如果想要同时输出文本和变量值&#xff0c;却又不希望使用字符串格式化的话&#xf…

Apache多处理模块

介绍 Apache HTTP 服务器被设计为一个功能强大&#xff0c;并且灵活的 web 服务器&#xff0c; 可以在很多平台与环境中工作。不同平台和不同的环境往往需要不同 的特性&#xff0c;或可能以不同的方式实现相同的特性最有效率。Apache httpd 通过模块化的设计来适应各种环境。这…

某班学生不超过40人,输入某门课程的成绩,具体人数由用户通过键盘输入,用函数编程统计不及格的人数。

#include<stdio.h> #define N 40 int flunk (int n,int people[N]) {int i,counter;for(i0,counter0;i<n;i) { if(people[i]<60) counter; } printf("不及格人数为:%d\n",counter); }int main() {int n;int people[N];printf("请输入…

scala函数返回值

1、使用returndef functionName ([参数列表]) : [return type] { function body return [expr] }2、直接把返回值写在最后&#xff1a; object Test { def main(args: Array[String]) { println( "Returned Value : " addInt(5,7) ); } def addInt( a:Int, b:Int )…

laravel5.4 发送SMTP邮件

https://blog.csdn.net/qq_35843527/article/details/77880631 Lumen / Laravel 5.4 使用网易邮箱 SMTP 发送邮件 获取网易邮箱的服务器和授权码: 登录网易邮箱 (http://mail.163.com/), 获取服务器地址&#xff1a; 点击【设置】 > 【POP3/SMTP/IMAP】:服务器地址: POP3服务…

bash变量

2019独角兽企业重金招聘Python工程师标准>>> 1.用户自定义变量 在bash中&#xff0c;变量默认都是字符串型&#xff0c;若要进行数值运算&#xff0c;则需要指定变量类型为数值类型 给变量赋值时等号两边不能有空格&#xff0c;如果变量本身有空格&#xff0c;则需要…

FlaskWeb开发:基于Python的Web应用开发实战pdf

下载地址&#xff1a;网盘下载 本书不仅适合初级Web开发人员学习阅读&#xff0c;更是Python程序员用来学习高级Web开发技术的优秀参考书。 • 学习Flask应用的基本结构&#xff0c;编写示例应用&#xff1b; • 使用必备的组件&#xff0c;包括模板、数据库、Web表单和电子邮件…