此input元素是Datepicker Widget。日期属性值,例如" 09/09 / 1999"加载到模板视图,并在Datepicker日历中选择相同的日期,按预期工作。从组件到模板的绑定是可以的。
但是当我在Datepicker交互式日历中更改日期时,所选日期将显示在输入框中,但组件中的日期属性不会更新。当我使用(ngSubmit)=' search(form.value)'时,表单对象form.date值与之前相同。
--template---
<form #form='ngForm' (ngSubmit)='search(form.value)'>
<input type="text" id="datepicker" [(ngModel)]="date" name="date">
<button type="submit"> click </button>
</form>
--component---
export class AppComponent {
public date = "09/09/1999";
search(form: any) {
console.log("date:" + form.date); // date:
}
}
是的,我可以使用本地模板变量#date将输入值传递给组件,如下所示(ngSubmit)=&#34; search(date.value)&#34;。但是对于多输入Datepicker,我可以连接局部变量值并将其传递给search()。
我想知道为什么ngModel无法跟踪datepicker输入中的更改以及更新组件属性或form.value的最佳方法是什么?
答案 0 :(得分:1)
我不能建议你让jQuery datepicker与Angular一起工作 - 因为它需要重写核心jQuery或核心Angular。
关于为什么ngModel无法读取jQuery-UI对象的解释有look at this post I made earlier on a similar thread.
ngModel依赖于对本机DOM对象的访问--jQuery将这些对象抽象为自己的自定义jQuery对象。 Angular没有用于处理此jQuery对象的API。