码迷,mamicode.com
首页 > 其他好文 > 详细

angular4 组件间通信

时间:2018-03-27 21:04:33      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:bool   change   ado   log   let   tput   ati   const   1.0   

父传子用@input

子传父用@output

例:子组件

<p>
    <span *ngFor="let star of stars;let i=index" class="glyphicon glyphicon-star" [class.glyphicon-star-empty]="star" (click)="clickStar(i)"></span>
    <span>{{rating | number:‘1.0-2‘}}星</span>  //保留两位小数
</p>
import { Component, OnInit ,Input ,Output,EventEmitter,OnChanges,SimpleChanges } from ‘@angular/core‘;

@Component({
  selector: ‘app-stars‘,
  templateUrl: ‘./stars.component.html‘,
  styleUrls: [‘./stars.component.scss‘]
})
export class StarsComponent implements OnInit, OnChanges {

//发生改变时,初始化星级和输入框内容 ngOnChanges(changes: SimpleChanges):
void{ this.stars = []; for(let i=1;i<=5;i++){ this.stars.push(i>this.rating) } } //input装饰器,星级评价的组件的rating属性应该由他的父组件传递给它 @Input() private rating:number = 0; @Output() private ratingChange:EventEmitter<number> = new EventEmitter(); //这里的名字一定要用属性名+Change才能在父组件中使用[(rating)]进行双向数据绑定 private stars:boolean[]; @Input() private readonly:boolean = true; constructor() { } ngOnInit() { } clickStar(index:number){ if(!this.readonly){ this.rating = index+1; this.ngOnInit(); this.ratingChange.emit(this.rating); } } }

父组件调用子组件,进行双向数据绑定

<app-stars [(rating)]="newRating" [readonly]="false"></app-stars>

 

angular4 组件间通信

标签:bool   change   ado   log   let   tput   ati   const   1.0   

原文地址:https://www.cnblogs.com/leiting/p/8652536.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!