【发布时间】:2017-08-03 14:22:01
【问题描述】:
我正在尝试在 Angular 2 中实现日期范围选择器。
我已经有一个可以工作的小部件,我必须将它链接到@angular/forms 子系统。
我希望能够将两个输出值(比如rangeStart 和rangeEnd)绑定到包含表单状态的两个不同属性。
有没有办法可以配置 NgModel 设置来完成此操作?
另一种方法是绑定 DateRange 类型的单个属性:
type DateRange = {
from: Date,
to: Date
};
我不知道这是否可能。
关于如何完成此任务的任何建议?
编辑:
我拥有的是一个 jQuery 派生的 JS 组件,它公开了一个 onChange,如下所示:
component.on('change', (eventData) => {
// here I have eventData.from and eventData.to as Date values
});
我想将这种处理程序集成到对 Angular 友好的组件中。 但是,我不能简单地这样做:
<my-date-range-picker name"xyz" [(NgModel)]="aDateRangeValue"></my-date-range-picker>
因为,AFAICT,变更检测不适用于复合值。
我应该在我的组件中公开什么?两个EventEmitters?我可以以某种方式利用NgModel 吗?
【问题讨论】:
-
你能给我们提供一些代码或更好的解释吗,因为我不确定你想在这里完成什么。
-
我试图更好地描述我的场景。基本上我有两个值,我想通过 NgModel 或其他替代方法将它们公开为输出
-
我的回答对您的问题有帮助吗?您可以根据需要将它们设为 EventEmitters 或什至 Subjects(来自 rxjs)。
-
张贴一个你到目前为止所拥有的东西。那样我会更容易工作......
-
@JGFMK 我有其他 5 个控件绑定到简单值,通过 ControlValueAccessor 接口将值公开给表单模块。 ControlValueAccessor 提供了很多好处,但似乎仅限于公开单个值。现在我想知道如何使用 2 个值(或者换句话说,由两个日期定义的单个值)做同样的事情(实现 ControlValueAccessor)。
标签: angular angular-ngmodel angular2-ngmodel