【发布时间】:2017-11-17 11:06:22
【问题描述】:
所以在一个简单的两个组件上传递数据,这应该很容易。但就我而言,我使用的是第三方日期选择器插件,然后由于我的应用程序的不同形式有这么多日期字段,我决定创建我的日期选择器的一个组件,这样我就不必在每个中重复配置认为我使用它。现在的问题是我将模型传递给子组件,该子组件也被传递给 datepicker 组件,如下所示:
父组件.ts
...
template: `<my-custom-datepicker-component [model]="model"></my-custom-datepicker-component>
<span>{{ model }}</span>
`
...
export class ParentComponent{
model: any;
}
在 my-custom-datepicker.ts 中
...
template: '<datetime [(ngModel)]="model"></datetime>'
...
export class MyCustomDatepickerComponent{
@Input() model: any;
}
这是我正在使用的日期选择器插件:https://nkalinov.github.io/ng2-datetime/。
我的问题是选择的日期没有反映在父组件的模型上。希望可以有人帮帮我。提前致谢!
【问题讨论】:
-
您是否阅读了解释不同可能性的指南? Component Interaction Guide
-
是的,我已经这样做了。我认为这种情况比那里的示例更复杂,因为这里有 3 级嵌套组件,从我的父组件到自定义 datepicker 组件再到实际的 datepicker 插件组件。
-
添加三个组件的组件代码,我们可以查看一下。这个想法是使用
EventEmitter将值从孩子传递给父母。您也可以使用香蕉大括号[(x)],但必须在您的自定义组件中为x实现xChanges事件。添加parent.component.ts、my-custom-datepicker.component.ts代码和指向您正在使用的datetime组件的链接。 -
我已经添加了它。基本上我只想显示自定义日期选择器中选择的日期。
-
顺便说一句,
xChanges是什么意思?