angular4父组件向子组件传值,子组件向父组件传值的方法

angular4父组件向子组件传值,子组件向父组件传值的方法父组件向子组件传值@Input文件目录父组件:father.template.html<h1>父组件</h1><cmt-child[data]=’data’></cmt-child>father.component.tsimport{Component,OnIn…

大家好,又见面了,我是你们的朋友全栈君。

父组件向子组件传值 @Input

文件目录

1250245-20181019162504929-1031754682.png

父组件:

father.template.html

<h1>父组件</h1>
<cmt-child [data]='data'></cmt-child>

father.component.ts

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

@Component({
    selector: 'cmt-father',
    templateUrl: './father.template.html'
})
export class FatherComponent implements OnInit {
    data: any = '我是传往子组件的值'
    ngOnInit() {
    }

    ngOnChanges() {
    }

}

子组件:(使用@Input修饰器去接收)

childcomponent.ts

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

@Component({
    selector: 'cmt-child',
    templateUrl: './child.template.html'
})
export class ChildComponent implements OnInit {
    @Input() data: any;//接收父组件的值
    ngOnInit() {
        console.log(this.data)
    }

    ngOnChanges() {
        console.log(this.data)
    }

}

这样就把值从父组件传到了子组件!

子组件向父组件传值(子组件通过方法借助修饰器@output传值给父组件)

子组件

childcomponent.ts

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

@Component({
    selector: 'cmt-child',
    templateUrl: './child.template.html'
})
export class ChildComponent implements OnInit {
    @Output('checked') checkedBack = new EventEmitter<any>();
    id:any ="我是传给父组件的值"
    ngOnInit() {
    }

    ngOnChanges() {
    }
    checkedCallback() {
        this.checkedBack.emit(this.id);
    }
}

child.template.html.html

<h1>子组件</h1>
<button (click)='checkedCallback()'>点击传值给父组件</button>

父组件

father.template.html

<h1>父组件</h1>
<cmt-child (checked)="checkedBack($event)"></cmt-child>

father.component.ts

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

@Component({
    selector: 'cmt-father',
    templateUrl: './father.template.html'
})
export class FatherComponent implements OnInit {
    ngOnInit() {
    }

    ngOnChanges() {
    }
    
    checkedBack(event) {
        console.log(event)
    }
}

这样子组件通过点击就把值传递给了父组件!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141665.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用pycharm的interpreter option为空解决办法「建议收藏」

    使用pycharm的interpreter option为空解决办法「建议收藏」新的py文件,点击直接使用pycharm打开,运行报错,interpreteroption为空第一步:选择File,进入Settings。第二步:1.选择Project中的ProjectInterpreter。2.选择下拉中的pathon解释器,如图为3.6的解释权。3.选择Apply,使设置生效。运行代码成功。…

    2025年7月22日
    0
  • MySQL集群架构[通俗易懂]

    MySQL集群架构[通俗易懂]本文知识点较多,篇幅较长,请耐心学习题记:文章内容输出来源:拉勾教育Java高薪训练营。本篇文章是MySQL学习课程中的一部分笔记。MySQL集群架构一、集群架构设计1、架构设计理念在集群架构设计时,主要遵从下面三个维度:可用性扩展性一致性2、可用性设计站点高可用,冗余站点服务高可用,冗余服务数据高可用,冗余数据保证高可用的方法是冗余。但是数据冗余带来的问题是数据一致性问题。实现高可用的方案有以下几种架构模式:主从模式简单灵活,能满足多种需求。比较主流的.

    2022年7月27日
    1
  • KEIL MDK生成bin文件的两种方法[通俗易懂]

    KEIL MDK生成bin文件的两种方法[通俗易懂]KEILMDK生成bin文件的两种方法:生成bin文件的设置路径:Keil->OptionforTarget->User->AfterBuild/Rebuild->Run#1(勾上)->输入bin文件的生成方式bin文件的生成都是通过fromelf.exe来实现的,fromelf.exe一般在Keil的安装路径下:例:D:\Ke…

    2022年10月20日
    0
  • visual studio2019的安装以及使用

    visual studio2019的安装以及使用一 下载安装包下载地址选择 visualstudio 的 community 版本二 下载好后运行三 组件的选择如果是用来学 C C 的话 选择以下两个就够了之后如果还需要其他一些功能的话 可以后续在进行添加 打开 visualstudio 进入修改四 进行安装如果不需要修改安装位置的话点击安装就可以了 不过由于 vs2019 占用的空间较大最好不要装在

    2025年7月4日
    1
  • visdom 使用教程

    visdom 使用教程visdom教程visdom安装与启动服务visdom常用功能image窗口:图像显示与更新窗口显示images窗口:多个图像显示与更新窗口显示text窗口:显示文本与更新文本line窗口:绘制折线图与更新折线图scatter窗口:绘制散点图与更新散点图visdom安装与启动服务安装visdompipinstallvisdom打开服务python-mvisdom.server…

    2022年6月24日
    29
  • 闭包面试回答_ajax面试题

    闭包面试回答_ajax面试题写在前面:在学习了闭包之后,试着做做这些题。其实是一种很棒地检验自己学习成果的手段。我当时反反复复,学了但好像又没完全学,遇到题还是一头雾水,到现在可以捋得很清楚也经历了蛮久的。而且从this,执行上下文,作用域一直走过来,这些题目涉及的内容也相对全面,加油喽。

    2022年8月30日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号