Angular 角度4:NgModel不';不行。不将值设置为“0”;日期“;领域

Angular 角度4:NgModel不';不行。不将值设置为“0”;日期“;领域,angular,date,ngmodel,Angular,Date,Ngmodel,使用Angular 4,我试图为“date”类型的输入设置一个值,但我做不到。我的领域结构如下所示: <input type="date" class="form-control" ([ngModel])="edt_object.list_changedate" (ngModelChange)="edt_object.list_changedate = $event" formControlName

使用Angular 4,我试图为“date”类型的输入设置一个值,但我做不到。我的领域结构如下所示:

<input 
    type="date"
    class="form-control"                        
    ([ngModel])="edt_object.list_changedate" 
    (ngModelChange)="edt_object.list_changedate = $event"
    formControlName="list_changedate"
    name="list_changedate"
    id="list_changedate"
    style="width: 228px!important">
this.edt_object.list_changedate = this.lista_selected.list_changedate

然而,什么也没有发生。当我使用jQuery分配值时(是的,同时使用Angular和jQuery),它确实起作用,但是,当我尝试使用Angular验证该字段时,该字段的状态为“无效”,因为Angular没有值。我该怎么办?

作为问题的一种变体,它可能是不正确的日期格式。 尝试调试“this.lista\u selected.list\u changedate”值。它应该类似于“2016-10-13”格式。

更改

 ([ngModel])="edt_object.list_changedate" 
 (ngModelChange)="edt_object.list_changedate = $event"

并实现
onChange()
as

onChange(event) {
    // emit event
}
[(ngModel)]
是双向绑定
(ngModelChange)是ngModel的@Output。如果你想使用
(ngModelChange)
你必须使用[ngModel]

你做了三次同样的事情:一次使用[(ngModel)],一次使用(ngModelChange),一次使用formControlName(这表明你使用的是被动表单,因此不应该更改ngModel)。发布一个最小的完整示例,再现问题。但首先要确定您想要的是基于模板的表单还是反应式表单。您实现了数据绑定,然后甚至没有使用它,而是使用JQuery?您是否尝试过删除ngModel
([ngModel])=“edt\u object.list\u changedate”
?非常感谢大家的回复。海防站给出了正确的答案。@Ricky很高兴这有帮助!
onChange(event) {
    // emit event
}