博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular 的 @Input、@Output 的一个用法
阅读量:7045 次
发布时间:2019-06-28

本文共 1438 字,大约阅读时间需要 4 分钟。

angular 使用 @input、@Output 来进行父子组件之间数据的传递。

 

如下:

父元素:

 父元素标签中有一个属性是,parent_value,在子元素中可以使用该值:

this paragraph's title is from parent's(parent-root) attribute parent_value

 在子元素中,我们 p 标签的 title 属性绑定了父元素的 parent_value 属性,这里要注意了,

[title]="parent_value" 的意思并不是指 title 的值就是 "parent_value" 这个字符串,而是父元素中指定的 parent_value 属性的值。

这里,我们需要做的处理是,在子组件中,使用 @Input 去注解 parent_value 属性,指明这是一个来自父组件的元素。

 

在上面的例子中,父元素也定义了一个属性 child_emit,值是 test(),也就是说这是一个函数调用,在父元素组件中有一个 test 函数,可是我们应该怎么调用呢?我们毕竟没有 child_emit 这种事件,这时候我们就可以在子元素中触发父元素的这个 test 方法的调用。

但是首先我们先要在子元素组件中把 child_emit 使用 @Output 进行注解,然后将其值设为 new EventEmitter,当我们在子组件中去调用 child_emit 方法的时候,父元素中 child_emit 的值的方法(test)就会被调用。

 

源码如下:

child.component.ts

import {Component, EventEmitter, Input, Output} from "@angular/core";@Component({  selector: 'child-root',  template: `      

this paragraph's title is from parent's(parent-root) attribute parent_value

`})export class ChildComponent { @Input() parent_value; @Output() child_emit = new EventEmitter(); trigger() { this.child_emit.emit() }}

  

parent.component.ts

import {Component, Output} from "@angular/core";@Component({  selector: 'example-root',  template: `        
`,})export class ParentComponent { @Output() parent_value = 'value from parent'; test () { console.log('call by emit at ' + new Date().toLocaleString()) }}

  

完整源码:

 

转载于:https://www.cnblogs.com/eleven24/p/8326112.html

你可能感兴趣的文章
用Python告诉你,现在的房租有多高?
查看>>
CSS3动画表单
查看>>
Spring Data JPA 持久层开发
查看>>
轻松 get 报表模糊查询技能
查看>>
SparkSQL实践与优化
查看>>
团队绩效考核的思考
查看>>
死磕 Elasticsearch 方法论:普通程序员高效精进的 10 大狠招!(Elasticsearch教程序章)|MVP讲堂...
查看>>
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 10 章 类型转换_10.6. SELECT 输出列
查看>>
使用Java类加载SpringBoot、SpringCloud配置文件
查看>>
Java枚举
查看>>
如何把 Markdown 文件批量转换为 pdf?
查看>>
给信息安全爱好者的一封信
查看>>
swift 协议的写时拷贝
查看>>
为什么会出现微服务和分布式?
查看>>
SpringMVC源码分析3:DispatcherServlet的初始化与请求转发
查看>>
《当幸福来敲门》观后感
查看>>
Confluence 6 后台中的默认空间模板设置
查看>>
人工生命 1.0.0 版发布,第一个人工生命诞生
查看>>
SpringBlade 2.0.1 发布,兼容jdk11与openjdk,增加Saber代码生成功能
查看>>
商城系统 DBShop V1.3 Release 20190309 发布
查看>>