检测从第三方js库发出的Angular 2上的输入值更改

时间:2017-04-28 05:17:40

标签: angular datepicker

我在第三方datepicker库(jQuery等)的帮助下,在我的表单上实现了datepicker。当用户选择日期时,它可以工作,但Angular无法检测从datepicker发出的变化(例如,当我选择日期时)。
这是我的代码:
HTML

<input type="text" id="dateOfBirth" name="dateOfBirth" formControlName="dateOfBirth" value="{{selectedEmployee.dateOfBirth}}" (ngModelChange)="dateFieldChanged()" readonly>

TS

dateFieldChanged() {
  console.log('date changed!');
}

它应该执行dateFieldChange(),不是吗?这样我就可以确定表格是原始的还是已经很脏了。但这种方法从未执行过 我认为这是因为第三方datepicker javascript更改了值,因此Angular无法检测到它。
如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我设法做到了。由于我的目标是现代浏览器(下面是!= IE8),我只需要将输入类型更改为“date”

<input type="date" id="dateOfBirth" name="dateOfBirth" formControlName="dateOfBirth" value="{{selectedEmployee.dateOfBirth}}" (ngModelChange)="dateFieldChanged()">