// father template: ... <child-item [name] = "fatherItemName" > </child-item> //...`
其中”fatherItemName” 为父组件中的属性,[name] 为子组件的输入this
在子组件中使用 @Input() name 来接受父组件传递的值code
若是在接收值前须要进行一些处理,可使用setter 拦截输入属性事件
_name: string = ''; @Input() set nameStr(name: string){ _name = "father name:" + name; }
这时的 _name 做为临时变量,做为set 和get的中转。其实_name就是咱们要组件中要用到的真实属性
父组件中:
< child-item [namestr] = “fatherItemName” >
name -> namestr
使用getter 输出get
get nameStr(){ return _name; }string
插值时 {{ nameStr }}it
// father template: ... <child-item (childEvent) = "fatherFunction($event)"> </child-item> //... export class FatherComponent{ fatherFunction(){ alert('hello!'); } }
子组件io
//... < p (click) = "clickThis"> click </ p> //... @Output() childEvent = new EventEmitter<boolean>(); clickThis(){ this.childEvent.emit(); }
<child-item [name] = "fatherItemName" #name > </child-item>
子组件经过#绑定一个name的局部变量来访问子组件的属性event
@ViewChild(ChildComponent) child: ChildComponent;