angularjs2中父子組件之間的數(shù)據(jù)傳遞

父到子組件之間的數(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;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容