angular之交互

一.通过setter 截听输入属性值的变

利用getter setter对值进行获取和处理

二. ngOnChanges()来截听输入属性值的变化

监测输入属性值的变化
当需要监视多个、交互式输入属性的时候,本方法比用属性的 setter 更合适。

三.父组件监听子组件的事件(组件输入输出)

@Input() name = '';//父组件->向子组件传递数据。
@Output() voted = new [EventEmitter]<boolean>();//父组件可以获取子组件的信息,同时父组件要创建html监听
EventEmitter是node.js的一个监听器。

四.父级调用 @ViewChild()

@ViewChild可以获取到当前组件视图中的单个元素
@ViewChildren获取子组件对象列表
1.局部变量访问
@ViewChild('changeColor',{static:true}) changeColor;
2.直接指定组件类

父类的html

<app-home [items]="items" #home ></app-home>
<!-- #home要写在子控件的里面 -->
<button (click)="appComponentAction()" >父级点击这里</button>

父类的Ts

    // 子类的声明
  @ViewChild('home',{static:true}) home:HomeComponent;
  // 实现点击事件
  appComponentAction(): void{
    // 通过home子类调用属性和方法
    this.home.textColor1 = 'd';
    this.home.run();
  }
}

子类只需要实现这俩个方法和公开属性就好

@Input()
set textColor1(value:string){
  console.log('textcolor:'+value);
  this.textColorStr = value;
}
 get textColor1():string{
  return this.textColorStr ;
}

run(){
  console.log('running');
}

五.父和子通过服务通信

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.父组件通过属性绑定的方式将数组从上到下的流入到子组件中,子组件需要通过@Input装饰器来获取。 例如: 2....
    我不傻_cyy阅读 710评论 0 1
  • 组件间交互简单来说就是让两个或多个组件之间共享信息。接下来我们就对Angular2组件间的交互做一个简单的解...
    tuacy阅读 1,235评论 0 2
  • 最近到了新公司,用的技术是angular4,以前只用过angular1,本来以为两者差别不大,结果了解之后才知道...
    小燕子小圆子阅读 329评论 1 3
  • 官网:https://angular.cn/guide/component-interaction[https:/...
    周末不敲键盘阅读 490评论 0 0
  • Angular元素就是打包成自定义元素的 Angular 组件。所谓自定义元素就是一套与具体框架无关的用于定义新 ...
    前端菜篮子阅读 1,450评论 0 1