父到子組件之間的數(shù)據(jù)傳遞
父組件模板中引用子組件
// father template: ...
<child-item [name] = "fatherItemName" > </child-item>
//...`
其中"fatherItemName" 為父組件中的屬性,[name] 為子組件的輸入
在子組件中使用 @Input() name 來(lái)接受父組件傳遞的值
如果在接收值前需要進(jìn)行一些處理,可以使用setter 攔截輸入屬性
_name: string = '';
@Input()
set nameStr(name: string){
_name = "father name:" + name;
}
使用getter 輸出
get nameStr(){ return _name; }
子到父組件之間的數(shù)據(jù)傳遞
1. 事件傳值
// father template: ...
<child-item (childEvent) = "fatherFunction($event)"> </child-item>
//...
export class FatherComponent{
fatherFunction(){
alert('hello!');
}
}
子組件
//...
< p (click) = "clickThis"> click </ p>
//...
@Output() childEvent = new EventEmitter<boolean>();
clickThis(){
this.childEvent.emit();
}
2.父組件通過(guò)局部變量獲取子組件的引用
<child-item [name] = "fatherItemName" #name > </child-item>
子組件通過(guò)#綁定一個(gè)name的局部變量來(lái)訪問(wèn)子組件的屬性
3.使用@ViewChild 獲取子組件的引用
@ViewChild(ChildComponent) child: ChildComponent;