当值不是日期对象时,ng-model不会更新值。例如,当我在输入中填写2时。该值未更新,并返回到先前的有效值。
试图添加基于ng-model的ng-change并将其转换为字符串。但是没有找到解决这个问题的方法。
<input
type="text"
ng-model="$ctrl.dateEntry"
ng-blur="$ctrl.updateDate()"
/>
$onInit() {
this.datePicker = this.elmnt.children[0];
// Set value
if (this.datePicker.values.length) {
this.dateEntry = new Date(this.datePicker.values[0].split('-').reverse().join('-'));
} else {
this.dateEntry = null;
}
}
updateDate() {
if (this.dateEntry) {
const date = this.dateEntry.getDate();
// set month. getMonth gives a single zero based number. Needs to be increased by 1 and a zero needs to be added in front if it's a single digit.
const month = ('0' + (this.dateEntry.getMonth() + 1)).slice(-2);
const year = this.dateEntry.getFullYear();
this.elmnt.children[0].values[0] = `${date}-${month}-${year}`;
}
}
当前,我将日期作为默认值,但是当我将其更改为无效值(如“ 22”)时。 Ng模型未更新。
即使没有有效的值/日期,如何使ng模型更新成为可能?