大佬教程收集整理的这篇文章主要介绍了Angular2:父子组件通信,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
/app/app.ts import {Component} from 'angular2/core' import {FORM_DIRECTIVES,FormBuilder,ControlGroup,Validators} from 'angular2/common' import {StatE} from './state' @Component({ SELEctor: 'my-app',providers: [FormBuilder],templateUrl: 'app/app.html',directives: [State] }) export class App { registrationForm: ControlGroup; state: State; constructor(fb: FormBuilder) { this.registrationForm = fb.group({ 'name': ['',Validators.required],'email': '' }); } onSubmit() { alert('Entered Name: ' + this.registrationForm.value.Name); alert('State SELEcted: '); //trying to alert the state SELEcted in state component } } /app/app.html <div> <h2>Registration Form</h2> <form [ngFormModel]=registrationForm (ngSubmit)="onSubmit()"> <label>Name: </label> <input type="text" ngControl="name"> <state></state> <button [disabled]="!registrationForm.valid">Submit</button> </form> </div> /app/state.ts import {Component} from 'angular2/core' import {FORM_DIRECTIVES,ControlGroup} from 'angular2/common' @Component({ SELEctor: 'state',templateUrl: 'app/state.html',directives: [] }) export class State { statesDropDownValues = ['NJ','NY','PA','CA']; stateForm: ControlGroup constructor(fb: FormBuilder) { this.stateForm = fb.group({ 'state': '' }); } setStateValue() { alert('State SELEcted: ' + this.stateForm.value.statE); } } /app/state.html <div> <form [ngFormModel]="stateForm"> <label>State: </label> <SELEct ngControl="state" (changE)="setStateValue()"> <option *ngFor="#s of statesDropDownValues" [value]="s">{{s}} </option> </SELEct> </form> </div>
@Component({ SELEctor: 'state',directives: [] }) export class State { statesDropDownValues = ['NJ','CA']; stateForm: ControlGroup; @Output() stateChange:EventEmitter<String> = new EventEmitter(); // <---- constructor(fb: FormBuilder) { this.stateForm = fb.group({ 'state': '' }); } setStateValue() { alert('State SELEcted: ' + this.stateForm.value.statE); stateChange.emit(this.stateForm.value.statE); } }
<div> <h2>Registration Form</h2> <form [ngFormModel]=registrationForm (ngSubmit)="onSubmit()"> <label>Name: </label> <input type="text" ngControl="name"> <state (stateChangE)="handleNewState($event)"></state> <button [disabled]="!registrationForm.valid">Submit</button> </form> </div>
$event包含新状态值的值.
编辑
这是一种在父组件中保存选定状态的方法:
export class App { registrationForm: ControlGroup; state: String; constructor(fb: FormBuilder) { this.registrationForm = fb.group({ 'name': ['','email': '' }); } handleNewState(statE) { this.state = state; } onSubmit() { alert('Entered Name: ' + this.registrationForm.value.Name); alert('State SELEcted: ' + this.statE); } }
以上是大佬教程为你收集整理的Angular2:父子组件通信全部内容,希望文章能够帮你解决Angular2:父子组件通信所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。