【发布时间】:2017-08-08 08:30:31
【问题描述】:
我有子组件(日历)和父组件(表单)。我必须在日历中选择值,并且我想访问表单组件中的值。
我怎样才能以最好的方式实现这一目标?
子组件.ts:
import {
Component,
OnInit,
ViewChild,
Input
} from '@angular/core';
@Component({
selector: 'calendar',
template: '
<md2-datepicker name="mindate"
placeholder="Minimum Date"
[(ngModel)]="minDate"
[mode]="mode"
[touchUi]="touch"
[format]="dateFormat"
#minDateControl="ngModel" [fromDate]="minDateControl"></md2-datepicker>
<md2-datepicker name="maxdate"
placeholder="Maximum Date"
[(ngModel)]="maxDate"
[min]="minDate"
[mode]="mode"
[touchUi]="touch"
[format]="dateFormat"
#maxDateControl="ngModel"></md2-datepicker>
',
})
export class CalendarComponent implements OnInit {
today: Date = new Date();
minDate: Date;
maxDate: Date;
constructor(){
}
ngOnInit(){
}
}
父组件:
import {
Component,
OnInit,
ViewChild,
Input
} from '@angular/core';
import { Router } from '@angular/router';
import { ChartModule,ChartComponent } from 'angular2-chartjs';
import { ChartService } from './../shared/chart.service';
import { Colors, xAxisWidth } from './../shared/data';
@Component({
selector: 'form-js',
template: `
<h3 class="chartHeading">Parameter Selection Form</h3>
<calendar></calendar>
`,
})
export class FormComponent implements OnInit {
@Input fromDate: string;
@Input toDate: string;
constructor(){
}
ngOnInit(){
}
alert(fromDate);
}
如何在 angular2 中的表单组件中获取起始日期值和截止日期值?
【问题讨论】:
-
您可以使用共享服务或@Input/@Output 属性。后者在这种情况下是最好的,它在 Angular 文档中有很好的记录:angular.io/guide/component-interaction
-
最好的方法是编写一个可注入的服务来传递数据,因为提供的方式是为自定义组件提供的
标签: angular typescript