JavaScript

超轻量级php框架startmvc

angularjs2中父子组件的数据传递的实例代码

更新时间:2020-05-22 09:30:01 作者:startmvc
父到子组件之间的数据传递父组件模板中引用子组件//fathertemplate:...<child-item[name]="fatherI

父到子组件之间的数据传递

父组件模板中引用子组件


 // father template: ...

 <child-item [name] = "fatherItemName" > </child-item>

//...`

其中”fatherItemName” 为父组件中的属性,[name] 为子组件的输入

在子组件中使用 @Input() name 来接受父组件传递的值

如果在接收值前需要进行一些处理,可以使用setter 拦截输入属性


_name: string = '';

@Input()

set nameStr(name: string){

_name = "father name:" + name;

}

这时的 _name 作为临时变量,作为set 和get的中转。

父组件中:


< child-item [namestr] = “fatherItemName” > 

name -> namestr

使用getter 输出


get nameStr(){ return _name; }

插值时 {{ nameStr }}

子到父组件之间的数据传递

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.父组件通过局部变量获取子组件的引用


<child-item [name] = "fatherItemName" #name > </child-item>

子组件通过#绑定一个name的局部变量来访问子组件的属性

3.使用@ViewChild 获取子组件的引用


@ViewChild(ChildComponent) child: ChildComponent;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

angularjs2父子组件数据传递 angularjs2 父子组件 angularjs2 数据传递